expo-modules-autolinking
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 |
|---|---|---|---|---|
| semgrep | semgrep:child-process-import | AI (semgrep): Build-time autolinking scripts legitimately use child_process; stable pattern across all versions of this package. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): Occurs only in e2e test helper, not shipped runtime code; no secret exfiltration risk. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Used to load module config JSON files by path — core autolinking functionality, not arbitrary code execution. | ai |
Versions (showing 48 of 48)
| Version | Deps | Published |
|---|---|---|
| 56.0.14 | 4 / 2 | |
| 56.0.13 | 4 / 2 | |
| 56.0.12 | 4 / 2 | |
| 56.0.10 | 4 / 2 | |
| 56.0.9 | 4 / 2 | |
| 56.0.8 | 4 / 2 | |
| 56.0.7 | 4 / 2 | |
| 56.0.6 | 4 / 2 | |
| 56.0.5 | 4 / 2 | |
| 56.0.4 | 4 / 2 | |
| 56.0.3 | 4 / 2 | |
| 56.0.2 | 4 / 2 | |
| 56.0.1 | 4 / 2 | |
| 56.0.0 | 4 / 2 | |
| 55.0.24 | 4 / 2 | |
| 55.0.23 | 4 / 2 | |
| 55.0.22 | 4 / 2 | |
| 55.0.21 | 4 / 2 | |
| 55.0.20 | 4 / 2 | |
| 55.0.19 | 4 / 2 | |
| 55.0.18 | 4 / 2 | |
| 55.0.17 | 4 / 2 | |
| 55.0.16 | 4 / 2 | |
| 55.0.15 | 4 / 2 | |
| 55.0.14 | 4 / 2 | |
| 55.0.13 | 4 / 2 | |
| 55.0.12 | 4 / 2 | |
| 55.0.11 | 4 / 2 | |
| 55.0.10 | 4 / 2 | |
| 55.0.9 | 4 / 2 | |
| 55.0.8 | 4 / 2 | |
| 55.0.7 | 4 / 2 | |
| 55.0.6 | 4 / 2 | |
| 55.0.5 | 4 / 2 | |
| 55.0.4 | 4 / 2 | |
| 55.0.3 | 5 / 2 | |
| 55.0.2 | 5 / 2 | |
| 55.0.1 | 5 / 2 | |
| 55.0.0 | 5 / 2 | |
| 3.0.26 | 5 / 2 | |
| 3.0.25 | 5 / 2 | |
| 3.0.24 | 5 / 2 | |
| 3.0.23 | 5 / 2 | |
| 3.0.22 | 5 / 3 | |
| 3.0.21 | 5 / 3 | |
| 3.0.20 | 5 / 3 | |
| 2.1.15 | 7 / 2 | |
| 2.1.10 | 7 / 2 |
v56.0.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 (kudochien) than the most recent previously approved version (alanhughes) on 2026-05-28, but kudochien 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.
v56.0.13
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.12
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.10
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.9
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.8
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.7
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.6
2 findingsThis version was published by a different npm account than previous versions on 2026-05-14. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.3
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v56.0.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.24
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.23
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.22
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.21
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.20
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.19
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v55.0.18
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.17
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.16
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.15
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.14
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.13
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.12
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.11
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.10
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.9
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.8
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.7
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.6
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.5
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.4
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.3
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v55.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.26
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 (alanhughes) than the most recent previously approved version (kudochien) on 2026-05-28, but alanhughes 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.
v3.0.25
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/dd4e87727c4ef32ac5d8a7b5a42fd80da254140f/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.24
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/e615daa250a27c60da3cea1f0572dcde93df5b68/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.23
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/e8b838828e5e985379c07294dc932dba66c89562/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.22
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/6d7c221dc8a1994043c4f2ddcf33a16bf3e508dc/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.21
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/d3e95a82fd9d48b0b751c4290216083244b360d2/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v3.0.20
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/1bba12a43e14a442f2cf1c73fe21968e0ef097c1/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.1.15
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/fddf49c6da4a33a7826db3fcba1292aafe03b1b1/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v2.1.10
2 findingsSpreading entire process.env into an object — may capture all secrets Source: https://github.com/expo/expo/blob/907224d194d100adb3dff522d4d7be91ee43be51/e2e/TestUtils.ts#L17 15 | const promise = spawnAsync(AUTOLINKINNG_CLI, args, { 16 | ...options, > 17 | env: { ...process.env, EXPO_SHOULD_USE_LEGACY_PACKAGE_INTERFACE: '1' }, 18 | }); 19 |
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.