@mathjax/src
Supply chain provenance
Status for the latest visible version.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| provenance | missing-githead | AI (provenance): Package has SLSA provenance attestation which supersedes gitHead as a supply chain integrity signal. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): eval() in sre.js is part of the Speech Rule Engine bundle; expected and stable for this package. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require in asyncLoad/node.js is MathJax's documented async module loader; stable pattern. | ai | |
| phantom-deps | phantom-dep:mhchemparser | AI (phantom-deps): Known MathJax chemistry extension; declared as peer/optional dep, not an attack vector. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): MathJax bundles use new Function() in its math rendering/template engine; stable pattern across versions. | ai | |
| phantom-deps | phantom-dep:speech-rule-engine | AI (phantom-deps): SRE is a known MathJax accessibility dependency; bundled separately, phantom-dep is a false positive. | ai | |
| phantom-deps | phantom-dep:@mathjax/mathjax-newcm-font | AI (phantom-deps): Same org scope font package; declared dep without direct import is expected for optional font resource. | ai | |
| phantom-deps | phantom-dep:mj-context-menu | AI (phantom-deps): Known MathJax UI component; declared dep without direct import is expected for optional plugin. | ai |
v4.1.2
2 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: GitHub Actions.
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v4.1.1
4 findingsDeclared in package.json dependencies but never imported in source code. Phantom dependencies may exist solely to execute install scripts or inject transitive malicious code. This was the exact attack vector in the axios compromise (plain-crypto-js).
Declared in package.json dependencies but never imported in source code. Phantom dependencies may exist solely to execute install scripts or inject transitive malicious code. This was the exact attack vector in the axios compromise (plain-crypto-js).
Declared in package.json dependencies but never imported in source code. Phantom dependencies may exist solely to execute install scripts or inject transitive malicious code. This was the exact attack vector in the axios compromise (plain-crypto-js).
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.