fix(core): correct bash @P prompt transformation detection#13544
fix(core): correct bash @P prompt transformation detection#13544scidomino merged 2 commits intogoogle-gemini:mainfrom
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Summary of ChangesHello @pyrytakala, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request resolves a critical security vulnerability by fixing a subtle bug in the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request addresses a critical security vulnerability in the bash prompt transformation detection logic. The fix correctly changes the check from operatorNode?.type to operatorNode?.text to properly identify the @P operator. This change is accurate and effectively mitigates the described command injection vulnerability. The pull request is well-documented, and the change is simple and correct.
Fix hasPromptCommandTransform to check operatorNode.text instead of
operatorNode.type when detecting the @ operator in bash parameter
expansions. The type property contains the grammar rule name (e.g.,
'operator'), not the literal character '@', so the check was never
matching.
This bug allowed dangerous bash prompt transformation commands like
`echo ${var@P}` to bypass security validation, potentially enabling
command injection attacks.
Fixes the security vulnerability where @p prompt transformations were
not being detected and blocked as intended.
234de70 to
c480713
Compare
Summary
Fixes a security bug in
hasPromptCommandTransformfunction that prevented detection of dangerous bash@Pprompt transformation operators. The function was incorrectly checkingoperatorNode?.type === '@'instead ofoperatorNode?.text === '@', causing it to never match since tree-sitter node types are grammar rule names (e.g., "operator"), not literal characters.Details
The bug allowed commands like
echo ${var@P}to bypass security validation. The bash@Poperator can execute arbitrary code through prompt expansion, making this a security vulnerability.Related Issues
How to Validate
Run the existing tests:
Expected: All 4 prompt transformation tests pass
Test manually - the command
echo ${foo@P}should now be blocked (returnsallowed: false). Script below.Pre-Merge Checklist