CVE-2025-34310
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedIPFire versions prior to 2.29 (Core Update 198) contain a stored cross-site scripting (XSS) vulnerability that allows an authenticated attacker to inject arbitrary JavaScript code through the INC_SPD, OUT_SPD, DEFCLASS_INC, and DEFCLASS_OUT parameters when updating Quality of Service (QoS) settings. When a user updates speeds or classes, the application issues an HTTP POST request to /cgi-bin/qos.cgi and the values for incoming/outgoing speeds and default classes are provided in the INC_SPD, OUT_SPD, DEFCLASS_INC, and DEFCLASS_OUT parameters. The values of these parameters are stored and later rendered in the web interface without proper sanitation or encoding, allowing injected scripts to execute in the context of other users who view the affected QoS entries.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceIPFire versions prior to 2.29 (Core Update 198) contain a stored XSS vulnerability in the QoS management interface (qos.cgi). Authenticated users can inject arbitrary JavaScript via the INC_SPD, OUT_SPD, DEFCLASS_INC, and DEFCLASS_OUT POST parameters. These values are stored without sanitization and rendered without encoding when other users view QoS settings, executing in their browser context.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 2.29= 2.29CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- User interaction
- Required
- Scope
- Changed
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Determine IPFire versionAccess the IPFire web interface and check the System page for the Core Update version number, or run 'cat /etc/ipfire/release' from the console to obtain the exact versionAffected if The installed version is 2.29 or any version prior to 2.29 (Core Update 198)
-
Verify QoS module is enabledLog into the IPFire web interface and navigate to the QoS settings page (qos.cgi) to confirm the QoS feature is activeAffected if QoS is enabled and accessible via the qos.cgi interface
-
Check for existing QoS configuration entriesLocate the QoS configuration file or database where INC_SPD, OUT_SPD, DEFCLASS_INC, and DEFCLASS_OUT parameters are storedAffected if Any values exist in these QoS configuration parameters that contain unsanitized user input such as script tags or JavaScript event handlers
You are affected if your IPFire version is 2.29 or earlier and the QoS feature is enabled, as the stored XSS vulnerability exists in the qos.cgi management interface when viewing QoS settings with malicious payload values.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scoped2.29
Implement input validation and output encoding for all QoS parameter values in qos.cgi. The fix requires proper sanitization of user-supplied values before storage and context-aware encoding before rendering in the web interface.
IPFire 2.29 (Core Update 198)
- Verify current IPFire version by accessing the web interface or running 'upgradepkg --version' via console
- Backup the current IPFire configuration using the web interface (System > Backup) or '/etc/ipfire backup' command
- Access IPFire's package manager or use 'pakfire' to upgrade to Core Update 198 (version 2.29)
- Run 'pakfire update' followed by 'pakfire upgrade' to obtain the latest packages
- Alternatively, download IPFire 2.29 Core Update 198 from the official IPFire download page and perform a manual upgrade via the web interface or console
- After upgrade, verify the version shows 2.29 (Core Update 198) in the web interface under System > Status
- Confirm the XSS vulnerability is resolved by attempting to inject script tags in QoS parameters (INC_SPD, OUT_SPD, DEFCLASS_INC, DEFCLASS_OUT) - they should be properly sanitized
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation2.0 h
- Implementation4.0 h
- Testing3.0 h
- Review / QA2.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $3,088.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2025-34310 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2025-34310 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data