{"id":"CVE-2026-54729","aliases":[],"url":"https://o3.security/vulnerability/CVE-2026-54729","summary":"dssrf: any users using 1.1.1.1 DNS is impacted by SSRF","details":"## Summary\n\nis_url_safe can treat localhost as safe when DNS resolver 1.1.1.1 returns NXDOMAIN because dns.resolve4 yields no address and no dns.lookup fallback occurs, allowing server-side request forgery.\n\n## POC\n\nExample to simulate 1.1.1.1 in version before 1.5.0 of dssrf:\n\n```js\nimport { is_url_safe } from '../dist/helpers.js';\nimport dns from 'dns';\n\n\ndns.setServers(['1.1.1.1']);\n\nconst TARGET = 'http://localhost/admin';\n\nconsole.log(`Testing: ${TARGET}`);\nconsole.log(`Current DNS Servers: ${dns.getServers()}`);\n\nconst result = await is_url_safe(TARGET);\n\nif (result === true) {\n    console.log('dssrf treated localhost as SAFE because 1.1.1.1 returned NXDOMAIN.');\n} else {\n    console.log('dssrf blocked localhost.');\n}\n```","published":"2026-07-31T16:58:42Z","modified":"2026-07-31T17:26:45.389705Z","cvss":null,"epss":{"score":0.00363,"percentile":0.29747,"asOf":"2026-09-14"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"dssrf","fixedVersion":"1.0.5"}],"fix":{"url":"https://github.com/HackingRepo/dssrf-js/pull/102","label":"HackingRepo/dssrf-js#102"},"references":[{"type":"WEB","url":"https://github.com/HackingRepo/dssrf-js/security/advisories/GHSA-5846-7qm3-r52j"},{"type":"WEB","url":"https://github.com/HackingRepo/dssrf-js/pull/102"},{"type":"WEB","url":"https://github.com/HackingRepo/dssrf-js/commit/668c21792cd1252baf779a176aa652e2b4c0067d"},{"type":"PACKAGE","url":"https://github.com/HackingRepo/dssrf-js"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-07-31T17:26:45.389705Z"}}