fix: heap buffer overflow in acmp pm#3544
fix: heap buffer overflow in acmp pm#3544airween wants to merge 3 commits intoowasp-modsecurity:v3/masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes a potential heap buffer overflow in the ACMP (Aho–Corasick) pattern insertion path by ensuring allocations and copies use the provided pattern length (not strlen()), which correctly supports patterns containing embedded NUL bytes.
Changes:
- Replace
strlen(pattern)-based allocations withlength-based allocations inacmp_add_pattern. - Replace
strcpywithmemcpyand add explicit NUL-termination to avoid overruns with embedded NULs.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Max Leske <250711+theseion@users.noreply.github.com>
|
theseion
left a comment
There was a problem hiding this comment.
As this issue doesn't appear to depend on special compiler flags, could we add a test?
Unfortunately I was not able. @fzipi also tried to help me with this, but all tests were passed always... |



what
This PR fixes a possible heap buffer overflow in ACMP (Aho Corasick) pattern matching function.
why
There is a bug report, received in email from @fumfel and his team. Also they provided this fix.
references
The original report:
other notes
The bug can only be exploited if the admin puts a
\0character into an argument of any@pm(or similar) operator.