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.
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