modal
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source, so a manually published version cannot be tied back to a reviewed commit.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| npm-metadata | suspicious-initial-version | AI (npm-metadata): Legacy package published as 0.0.0 over a decade ago; not a fresh throwaway pattern. | ai | |
| phantom-deps | phantom-dep:jquery | AI (phantom-deps): jquery is a legitimate runtime dep for this DOM modal library, just not statically imported. | ai | |
| dependencies | unvetted-dep:protobufjs | AI (dependencies): protobufjs is a well-known, widely-used protobuf library; its use is expected and appropriate for a gRPC-based SDK like Modal. | ai | |
| phantom-deps | phantom-dep:long | AI (phantom-deps): long is a transitive dependency of protobufjs used in gRPC/protobuf setups; declared for version pinning, not direct import. Stable pattern for this SDK. | ai | |
| phantom-deps | phantom-dep:protobufjs | AI (phantom-deps): protobufjs is used in the gRPC/proto build pipeline (gen-proto.sh); declared for compatibility pinning. Stable pattern for this SDK. | ai |
Versions (showing 59 of 59)
| Version | Deps | Published |
|---|---|---|
| 0.9.0 | 6 / 18 | |
| 0.8.2 | 6 / 18 | |
| 0.8.1 | 6 / 18 | |
| 0.8.0 | 6 / 18 | |
| 0.7.6 | 6 / 18 | |
| 0.7.5 | 6 / 18 | |
| 0.7.4 | 6 / 18 | |
| 0.7.2 | 6 / 18 | |
| 0.7.1 | 6 / 18 | |
| 0.7.0 | 6 / 17 | |
| 0.6.3 | 6 / 17 | |
| 0.6.2 | 6 / 17 | |
| 0.6.1 | 6 / 17 | |
| 0.6.0 | 6 / 17 | |
| 0.5.6 | 6 / 17 | |
| 0.5.5 | 6 / 17 | |
| 0.5.4 | 6 / 17 | |
| 0.5.3 | 6 / 17 | |
| 0.5.2 | 6 / 17 | |
| 0.5.1 | 6 / 17 | |
| 0.5.0 | 6 / 17 | |
| 0.3.25 | 5 / 17 | |
| 0.3.24 | 5 / 15 | |
| 0.3.23 | 5 / 15 | |
| 0.3.22 | 5 / 15 | |
| 0.3.21 | 5 / 15 | |
| 0.3.20 | 5 / 15 | |
| 0.3.19 | 5 / 15 | |
| 0.3.18 | 5 / 15 | |
| 0.3.17 | 5 / 15 | |
| 0.3.16 | 5 / 15 | |
| 0.3.15 | 5 / 15 | |
| 0.3.14 | 5 / 15 | |
| 0.3.13 | 5 / 15 | |
| 0.3.12 | 5 / 15 | |
| 0.3.11 | 5 / 15 | |
| 0.3.10 | 5 / 15 | |
| 0.3.9 | 5 / 15 | |
| 0.3.8 | 5 / 15 | |
| 0.3.7 | 5 / 15 | |
| 0.3.6 | 5 / 15 | |
| 0.3.5 | 5 / 9 | |
| 0.3.4 | 5 / 9 | |
| 0.3.3 | 5 / 9 | |
| 0.3.2 | 5 / 9 | |
| 0.3.1 | 5 / 9 | |
| 0.3.0 | 5 / 9 | |
| 0.2.0 | 0 / 5 | |
| 0.1.6 | 0 / 5 | |
| 0.1.5 | 0 / 5 | |
| 0.1.4 | 2 / 4 | |
| 0.1.3 | 2 / 4 | |
| 0.1.2 | 3 / 4 | |
| 0.1.1 | 3 / 4 | |
| 0.1.0 | 2 / 5 | |
| 0.0.3 | 3 / 3 | |
| 0.0.2 | 3 / 3 | |
| 0.0.1 | 3 / 3 | |
| 0.0.0 | 3 / 3 |
v0.9.0
1 findingThis version was published without provenance, but prior versions were published via CI/CD with attestations. This is a strong signal of a potential account compromise or unauthorized publish. Multiple high-profile registry compromises have exhibited exactly this pattern.
v0.8.2
1 findingThis version was published without provenance, but prior versions were published via CI/CD with attestations. This is a strong signal of a potential account compromise or unauthorized publish. The axios attack (March 2026) exhibited exactly this pattern.
v0.8.1
1 findingThis version was published without provenance, but prior versions were published via CI/CD with attestations. This is a strong signal of a potential account compromise or unauthorized publish. The axios attack (March 2026) exhibited exactly this pattern.
v0.7.5
1 findingThis version was published without provenance, but prior versions were published via CI/CD with attestations. This is a strong signal of a potential account compromise or unauthorized publish. Multiple high-profile registry compromises have exhibited exactly this pattern.
v0.5.1
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.5.0
2 findingsPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
This version was published by a different npm account (GitHub Actions) than the most recent previously approved version (thomasjpfan-modal) on 2025-10-28, but it carries Sigstore provenance attestation. This means the package moved to a trusted publisher (CI/CD with OIDC, e.g. GitHub Actions) — a supply-chain integrity improvement, not a compromise, since a stolen npm token cannot forge provenance bound to the source repository. Recorded as INFO for audit trail.
v0.3.25
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.24
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.23
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.22
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.21
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.20
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
This version was published by a different npm account (thomasjpfan-modal) than the most recent previously approved version (ekzhang) on 2025-09-02, but thomasjpfan-modal is listed as a maintainer on prior approved versions (matched on name). This looks like a manual publish by a known maintainer rather than a publisher change. Recorded as INFO for audit trail.
v0.3.19
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.17
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
This version was published by a different npm account (thomasjpfan-modal) than the most recent previously approved version (ekzhang) on 2025-08-22, but thomasjpfan-modal is listed as a maintainer on prior approved versions (matched on name). This looks like a manual publish by a known maintainer rather than a publisher change. Recorded as INFO for audit trail.
v0.3.16
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.15
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
This version was published by a different npm account (thomasjpfan-modal) than the most recent previously approved version (ekzhang) on 2025-07-23, but thomasjpfan-modal is listed as a maintainer on prior approved versions (matched on name). This looks like a manual publish by a known maintainer rather than a publisher change. Recorded as INFO for audit trail.
v0.3.14
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
This version was published by a different npm account (ehdr) than the most recent previously approved version (ekzhang) on 2025-07-07, but ehdr is listed as a maintainer on prior approved versions (matched on name). This looks like a manual publish by a known maintainer rather than a publisher change. Recorded as INFO for audit trail.
v0.3.9
2 findingsPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
This version was published by a different npm account (thomasjpfan-modal) than the most recent previously approved version (ekzhang) on 2025-06-27, but thomasjpfan-modal is listed as a maintainer on prior approved versions (matched on name). This looks like a manual publish by a known maintainer rather than a publisher change. Recorded as INFO for audit trail.
v0.2.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.6
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.1.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.