Skip to content

[Snyk] Security upgrade @expo/plist from 0.0.17 to 0.3.0#90

Open
revan-zhang wants to merge 2 commits intomainfrom
snyk-fix-76f509dc876fb7ab2d7d04c84adfbad6
Open

[Snyk] Security upgrade @expo/plist from 0.0.17 to 0.3.0#90
revan-zhang wants to merge 2 commits intomainfrom
snyk-fix-76f509dc876fb7ab2d7d04c84adfbad6

Conversation

@revan-zhang
Copy link
Copy Markdown
Collaborator

@revan-zhang revan-zhang commented Apr 2, 2026

snyk-top-banner

Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project.

Snyk changed the following file(s):

  • build-plist-edit/src/package.json
  • build-plist-edit/src/yarn.lock

Note for zero-installs users

If you are using the Yarn feature zero-installs that was introduced in Yarn V2, note that this PR does not update the .yarn/cache/ directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run yarn to update the contents of the ./yarn/cache directory.
If you are not using zero-install you can ignore this as your flow should likely be unchanged.

Vulnerabilities that will be fixed with an upgrade:

Issue Score
high severity XML Injection
SNYK-JS-XMLDOMXMLDOM-15869636
  660  

Important

  • Check the changes in this PR to ensure they won't cause issues with your project.
  • Max score is 1000. Note that the real score may have changed since the PR was raised.
  • This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic


Learn how to fix vulnerabilities with free interactive lessons:

🦉 XML Injection


Open with Devin

Note

Medium Risk
Dependency-only change, but it upgrades the plist parser/builder stack (including @xmldom/xmldom and xmlbuilder), which could subtly change plist.parse/plist.build behavior for generated Info.plist files.

Overview
Updates @expo/plist from 0.0.17 to 0.3.x in build-plist-edit, along with lockfile updates pulling newer @xmldom/xmldom and xmlbuilder versions to remediate an XML injection vulnerability.

No application code changes; runtime impact is limited to how plist files are parsed/built by the build-plist-edit script.

Written by Cursor Bugbot for commit 533c409. This will update automatically on new commits. Configure here.

…ck to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-XMLDOMXMLDOM-15869636
@revan-zhang
Copy link
Copy Markdown
Collaborator Author

revan-zhang commented Apr 2, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@socket-security
Copy link
Copy Markdown

socket-security bot commented Apr 2, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn Critical
Critical CVE: Handlebars.js has JavaScript Injection via AST Type Confusion

CVE: GHSA-2w6w-674q-4c4q Handlebars.js has JavaScript Injection via AST Type Confusion (CRITICAL)

Affected versions: >= 4.0.0 < 4.7.9

Patched version: 4.7.9

From: ?npm/handlebars@4.7.7

ℹ Read more on: This package | This alert | What is a critical CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known critical CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/handlebars@4.7.7. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 2 additional findings in Devin Review.

Open in Devin Review

"@actions/core": "^1.9.1",
"@expo/json-file": "^8.2.34",
"@expo/plist": "^0.0.17",
"@expo/plist": "^0.3.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Bundled index.js not rebuilt after dependency upgrade, so the vulnerability fix has no runtime effect

The PR updates @expo/plist from ^0.0.17 to ^0.3.0 in package.json and yarn.lock to reduce vulnerabilities, but the pre-compiled build-plist-edit/index.js bundle (which is what action.yml:19 actually executes via runs.main: 'index.js') was not rebuilt. The build step is ncc build index.ts -m -o ../ (build-plist-edit/src/package.json:7), which bundles all dependencies into a single index.js. Since index.js still contains the old @expo/plist@0.0.17 code (with vulnerable @xmldom/xmldom@~0.7.0 and xmlbuilder@^14.0.0), the upgrade has zero runtime effect — the action will continue running the old vulnerable code.

Prompt for agents
The build-plist-edit action uses @vercel/ncc to bundle all source code and dependencies into a single build-plist-edit/index.js file, which is the actual entry point referenced in action.yml. The PR updated package.json and yarn.lock but did not re-run the build step (cd build-plist-edit/src && yarn build, which runs ncc build index.ts -m -o ../). As a result, the bundled index.js still contains the old @expo/plist@0.0.17 code with its vulnerable transitive dependencies. To fix: run 'yarn build' from the build-plist-edit/src directory and commit the regenerated index.js.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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.

2 participants