\n```\n2. Victim navigates to the 'http://loc"}},{"@type":"Question","name":"How severe is CVE-2025-47931?","acceptedAnswer":{"@type":"Answer","text":"No CVSS score has been assigned to CVE-2025-47931 yet. Review the advisory details and affected package list to assess your exposure."}},{"@type":"Question","name":"Which packages are affected by CVE-2025-47931?","acceptedAnswer":{"@type":"Answer","text":"CVE-2025-47931 affects the following packages: librenms/librenms (Packagist). Ecosystems affected: Packagist."}},{"@type":"Question","name":"How do I fix CVE-2025-47931?","acceptedAnswer":{"@type":"Answer","text":"Update librenms/librenms to 25.5.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2025-47931 is resolved across your whole dependency graph."}},{"@type":"Question","name":"How do I detect CVE-2025-47931 in my Packagist dependencies?","acceptedAnswer":{"@type":"Answer","text":"Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for librenms/librenms, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version."}},{"@type":"Question","name":"How do I mitigate CVE-2025-47931 if there is no patch (or I can't update yet)?","acceptedAnswer":{"@type":"Answer","text":"If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands."}},{"@type":"Question","name":"How does O3 Security protect against CVE-2025-47931?","acceptedAnswer":{"@type":"Answer","text":"O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like CVE-2025-47931 can be triaged on real exposure rather than presence alone."}},{"@type":"Question","name":"Is CVE-2025-47931 actively exploited in the wild?","acceptedAnswer":{"@type":"Answer","text":"No public exploit code has been indexed for CVE-2025-47931 yet. This does not mean the vulnerability cannot be exploited — absence of public exploits does not imply safety. Apply the recommended fix and use O3 Security to monitor your exposure."}},{"@type":"Question","name":"What is the EPSS score for CVE-2025-47931?","acceptedAnswer":{"@type":"Answer","text":"CVE-2025-47931 has an EPSS (Exploit Prediction Scoring System) score of 11.9%, placing it in the 96th percentile of all CVEs. EPSS is maintained by FIRST.org and estimates the probability that a vulnerability will be exploited in the wild within the next 30 days. This score warrants monitoring and prompt remediation."}},{"@type":"Question","name":"What type of vulnerability is CVE-2025-47931?","acceptedAnswer":{"@type":"Answer","text":"CVE-2025-47931 is classified as Cross-site Scripting (XSS) (CWE-79). This weakness type describe the underlying flaw category, which helps determine the potential impact and the right class of mitigation. This is a high-impact weakness class that often enables remote code execution or data exposure."}},{"@type":"Question","name":"When was CVE-2025-47931 published, and has it been updated?","acceptedAnswer":{"@type":"Answer","text":"CVE-2025-47931 was published on May 17, 2025 and was last updated on August 12, 2026. Advisory data evolves as severity scores, affected ranges, and exploit intelligence are revised — always check the latest version of the advisory before acting."}}]}
Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🐘 Packagist
Not in CISA KEV

CVE-2025-47931 librenms/librenms

Fix: librenms/librenms@88fe1a7

CVE-2025-47931 is a Cross-site Scripting (XSS) vulnerability in librenms/librenms. EPSS puts its 30-day exploitation probability at 11.9% (96th percentile). A fix is available for librenms/librenms — see the affected versions and patch details below.

LibreNMS stored Cross-site Scripting vulnerability in poller group name

Also known asGHSA-hxw5-9cc5-cmw5
Published
May 17, 2025
Updated
Aug 12, 2026
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Sep 21, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

Proof-of-concept exploit code exists

  • CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.

Exploitation and automatability from CISA’s SSVC triage for CVE-2025-47931.

EPSS Exploitation Probability

via FIRST.org ↗
11.9%probability of exploitation in next 30 days
Moderate Risk0.00%
Lower risk than most CVEs96th percentile — riskier than 96% of all scored CVEsHighest risk

EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.

Real-World Exposure

1 pkg affected
🐘librenms/librenms

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.

Description

LibreNMS v25.4.0 suffers from Stored Cross-Site Scripting (XSS) Vulnerability in the 'group name' parameter of the 'http://localhost/poller/groups' form. This vulnerability allows attackers to inject malicious scripts into web pages viewed by other users.

---------------------------------POC-----------------------------

Before Setting: Enable 'distributed_poller' in http://localhost/settings/poller/distributed

  1. Attacker creates a new poller group and injects the payload in the 'group name' parameter
payload: <script>alert('XSS')</script>
  1. Victim navigates to the 'http://localhost/addhost' to add a new host
  2. The payload is executed

code sink: https://github.com/librenms/librenms/blob/25.4.0/includes/html/pages/addhost.inc.php#L284

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐘Packagistlibrenms/librenmsall versions25.5.0composer require librenms/librenms:^25.5.0

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for librenms/librenms, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update librenms/librenms to 25.5.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2025-47931 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like CVE-2025-47931 can be triaged on real exposure rather than presence alone.

Tailored to CVE-2025-47931. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

### LibreNMS v25.4.0 suffers from Stored Cross-Site Scripting (XSS) Vulnerability in the 'group name' parameter of the 'http://localhost/poller/groups' form. This vulnerability allows attackers to inject malicious scripts into web pages viewed by other users. ## ---------------------------------POC----------------------------- Before Setting: Enable 'distributed_poller' in http://localhost/settings/poller/distributed 1. Attacker creates a new poller group and injects the payload in the 'group name' parameter ``` payload: <script>alert('XSS')</script> ``` 2. Victim navigates to the 'http://loc
O3 Security · Impact-Aware SCA

Is CVE-2025-47931 in your dependencies?

O3 Security finds CVE-2025-47931 across Packagist dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.

CVE-2025-47931: librenms/librenms XSS | O3 Security