Skip to content

test: cover prototype poisoning through Expo config merges - #57

Merged
GSTJ merged 1 commit into
masterfrom
test/expo-deepmerge-security-20261104
Nov 4, 2026
Merged

GSTJ merged 1 commit into
masterfrom
test/expo-deepmerge-security-20261104

Conversation

@GSTJ

@GSTJ GSTJ commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Summary

Add a regression for prototype poisoning through Expo's config merge, where the patched deepmerge dependency is used.

Details

  • Starts with a static config containing an own __proto__ key, merges a safe setting through Expo, and checks the returned object has no poisoned prototype.
  • Keeps the existing source guards and bundled deepmerge exploit checks. The dependency patch is already on master; this adds coverage of its Expo caller.
  • Tested source: 69f72b6abf7b7fe37cedc2d3ff1cc8208ae96789. Every tracked file was compared byte for byte with the published Git tree. Author and committer are Gabriel Taveira gabrielstaveira@gmail.com.
  • Screenshot of local verification output and test output. This is a screenshot of rendered command output; no device runtime was exercised.

Testing steps

Run with Node 24 and pnpm 11.17.0:

pnpm install --frozen-lockfile
pnpm run lint
pnpm run format
pnpm run typecheck
pnpm run test
pnpm run build
pnpm run changelog:check
pnpm run security:check
npm pack --dry-run

The Expo merge should reject prototype poisoning while preserving the safe config values. The audit still lists three advisory exceptions covered by the existing local patches and regression checks.

@GSTJ
GSTJ merged commit 73196bb into master Nov 4, 2026
5 checks passed
@GSTJ
GSTJ deleted the test/expo-deepmerge-security-20261104 branch November 4, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant