Repository navigation
[Aikido] Fix shell-injection detection bypass via escaped quotes outside quote regions - #506
Closed
aikido-autofix[bot] wants to merge 1 commit into
Closed
aikido-autofix[bot] wants to merge 1 commit into
aikido-autofix[bot] wants to merge 1 commit into
Conversation
…s outside regions as literals
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patch addresses a shell-injection detection bypass vulnerability in the quote region parsing logic. Escaped quotes occurring outside of properly delimited quote regions were incorrectly being treated as quote delimiters, allowing attackers to fabricate safe regions around malicious shell syntax. The fix ensures that escaped quotes are consistently treated as literal characters rather than region boundaries. Changes were made to
isSafelyEncapsulated.gowith corresponding test coverage added toisSafelyEncapsulated_test.goanddetectShellInjection_test.go.✅ 1 issue fixed by this PR
parseQuoteRegionsstarts a quote region for every single- or double-quote byte without first determining whether the byte is escaped. Backslash handling is performed only after a region has already been opened. An escaped quote can consequently be paired with a later quote to fabricate a region around an attacker-controlled value.isSafelyEncapsulatedtrusts that region anddetectShellInjectionreturns without callingcontainsShellSyntax. The pre-shell handler emits no blocking action when detection returns no result, so a protected PHP shell operation can proceed. This is one parser defect affecting both escaped single-quote and escaped double-quote layouts.