htmlparser
Forgiving HTML/XML/RSS Parser in JS for *both* Node and Browsers
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| source-diff | net-exec-file:pulls/node-htmlparser/json2.js | AI (source-diff): json2.js is the canonical public-domain JSON.org polyfill (2010). The 'network' trigger is documentation comments pointing to json.org, not actual network calls. The eval() is the standard JSON.parse fallback pattern. Not malicious. | ai | |
| npm-metadata | bundled-binaries | AI (npm-metadata): libxmljs.node is a legitimate native addon for the libxml XML parsing library, expected in an HTML/XML parser package. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): eval() in json2.js is the canonical Crockford JSON2 polyfill pattern — a well-known, documented use of eval for JSON parsing fallback, not a supply-chain risk. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require() is in runtests.js (test harness only), loading test modules by filename — standard test runner pattern, not production code. | ai | |
| publish-pattern | dormant-publish | AI (publish-pattern): Package is 14+ years old with historically infrequent releases; publisher account age matches package age (original author); no material changes in this version. | ai |
Versions (showing 9 of 9)
| Version | Deps | Published |
|---|---|---|
| 1.7.7 | 0 / 0 | |
| 1.7.6 | 0 / 0 | |
| 1.7.5 | 0 / 0 | |
| 1.7.4 | 0 / 0 | |
| 1.7.3 | 0 / 0 | |
| 1.7.2 | 0 / 0 | |
| 1.7.1 | 0 / 0 | |
| 1.7.0 | 0 / 0 | |
| 1.6.2 | 0 / 0 |
v1.7.7
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.7.6
2 findingsPackage contains compiled binaries that could be backdoors: • libxmljs.node
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.7.5
3 findingsPackage contains compiled binaries that could be backdoors: • libxmljs.node
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.7.4
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.7.3
2 findingsPackage contains compiled binaries that could be backdoors: • libxmljs.node
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.7.2
2 findingsPackage contains compiled binaries that could be backdoors: • NodeHtmlParser/libxmljs.node
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.7.1
2 findingsPackage contains compiled binaries that could be backdoors: • NodeHtmlParser/libxmljs.node
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.7.0
2 findingsPackage contains compiled binaries that could be backdoors: • NodeHtmlParser/libxmljs.node
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.6.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.