Vulnerabilities

Security fix · GHSA-jjm2-jg4p-3v9q

Audit log injection via login username in auth_log()

Published Sep 15, 2026 · catalog updated Sep 15, 2026 · Audit log injection via

Last checked Nov 2, 2026. A connected source was read within the last 7 days.

Open the advisory

Exploitation likelihood is not on this record for GHSA-jjm2-jg4p-3v9q. A missing EPSS score is not a low risk. Compare Audit log injection via with the linked advisory before you change production.

Gaps on this record

  • The stored product name is a package slug. The name on this page is taken from the title (Audit log injection via).
  • No version range is stored. A customer cannot check an installed version against this record.
  • No vendor fix or required action is stored. Compare the linked advisory before you change production.
  • EPSS is missing. A missing score is not a low risk.
Severity
Medium5.3
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
Awaiting synchronization with FIRST
Remediation
Not established
Affected products
See sources for product scope

Summary An unauthenticated attacker can write arbitrary lines into the OPNsense audit log by putting a newline (0x0A) in the login username field. The web GUI auth handler hands $_POST['usernamefld'] straight to auth_log() with no control-character filtering, and a LF byte in the syslog message acts as a record separator, so the output splits into log entries the attacker controls. No credentials needed. The only requirement is being able to reach the login page. Details Vulnerable file: src/etc/inc/auth.inc Vulnerable function: auth_log() Data flow: Origin: $_POST['usernamefld'] (unauthenticated HTTP POST, no sanitization) Transit: authgui.inc -> auth_log() -> log_msg() (no neutralization at any hop) Sink: syslog(LOG_AUTH, ...) (audit stream consumed by log parsers and auditors) Vulnerable code (before patch): function auth_log($message, $prio = LOG_ERR) { openlog('audit', LOG_ODELAY, LOG_AUTH); log_msg($message, $prio); // $message contains raw $_POST['usernamefld'] reopenlog(); } How the injection works: Auth failures go through two separate log sinks at once. The first is auth_log() -> log_msg() -> syslog() . The second is a set of direct syslog() calls in AuthenticationFactory::authenticate() that never touch auth_log() . Both drop the raw username into the message, so fixing only one still leaves the other open. A LF byte (0x0A) in the username cuts both strings at the same spot, so one request produces four log entries where a normal failed login produces two. The two sink templates: Warning sink: "user could not authenticate for WebGui. [using OPNsense\Auth\Services\WebGui + OPNsense\Auth\Local]" Error sink: "/index.php: Web GUI authentication error for ' ' from " Splitting USERNAME at \n into FIRST and SECOND gives: Entry 1 (Warning): "user " + FIRST [always truncated - no auth suffix] Entry 2 (Error): "/index.php: ... for '" + FIRST + "' from " + REAL_IP Entry 3 (Warning): SECOND + " could not authenticate..." [forged su

No affected version ranges are stored yet. Use the vendor advisory before you decide this record does not apply.

How to fix GHSA-jjm2-jg4p-3v9q

  • No stored fix

    No vendor fix text is stored. Use the linked advisory before you change production.

  • Version check

    No version range is stored, so an installed version cannot be checked on this page.

  • Advisory

    Open the inventory_github record and follow its fix.

  • Official advisories

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

Exploitation likelihood is not on this record for GHSA-jjm2-jg4p-3v9q. A missing EPSS score is not a low risk. Compare Audit log injection via with the linked advisory before you change production.

Which versions are affected?

Affected version ranges are not on this record. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

CWE-117. EPSS is not on this record yet. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Technology hubs

Code

The project this record applies to. Exploit listings stay in References.

No public source repository is identified for this product.

Timeline

Detection, updates, and resolution for this record.

  1. Sep 15, 2026 · Maintainer security tabs

    Detected

    Summary An unauthenticated attacker can write arbitrary lines into the OPNsense audit log by putting a newline (0x0A) in the login username field. The web GUI auth handler hands $_POST['usernamefld'] straight to auth_log() with no control-character filtering, and a LF byte in the syslog message acts as a record separator, so the output splits into log entries the attacker controls. No credentials

Sources

  • Maintainer security tabsVendor advisoryGHSA-jjm2-jg4p-3v9q

    Summary An unauthenticated attacker can write arbitrary lines into the OPNsense audit log by putting a newline (0x0A) in the login username field. The web GUI auth handler hands $_POST['usernamefld'] straight to auth_log() with no control-character filtering, and a LF byte in the syslog message acts as a record separator, so the output splits into log entries the attacker controls. No credentials

    github.com

Freshness

Last verified in this catalog Sep 15, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • Maintainer security tabsNov 2, 2026