{"id":"GHSA-5846-7qm3-r52j","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```","aliases":["CVE-2026-54729"],"modified":"2026-07-31T17:26:45.389705Z","published":"2026-07-31T16:58:42Z","database_specific":{"nvd_published_at":null,"cwe_ids":["CWE-918"],"severity":"HIGH","github_reviewed":true,"github_reviewed_at":"2026-07-31T16:58:42Z"},"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"}],"affected":[{"package":{"name":"dssrf","ecosystem":"npm","purl":"pkg:npm/dssrf"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.0.5"}]}],"database_specific":{"last_known_affected_version_range":"\u003c= 1.0.4","source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-5846-7qm3-r52j/GHSA-5846-7qm3-r52j.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N"}]}