Fix stack buffer overflow in mavlink_log_handler logdata.txt parsing #26124
+21
−4
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.
Stack buffer overflow in
mavlink_log_handler.cppwhen parsing logdata.txt:LogEntry.filepath(60 bytes) written with unboundedsscanf("%s", ...). Remotely exploitable via FTP - attacker creates log file with long filename, triggers crash via LOG_REQUEST_DATA.Changes
Buffer size increase
LogEntry.filepath: 60 → 256 bytes (LOG_FILEPATH_SIZEconstant)Bounded sscanf
Compile-time safety
static_assert(PX4_MAX_FILEPATH >= LOG_FILEPATH_SIZE)- prevents NuttX configs with insufficient path sizestatic_assert(LOG_FILEPATH_SIZE == 256)- enforces synchronization with width specifierFiles Modified
mavlink_log_handler.h: DefineLOG_FILEPATH_SIZEconstant, update structmavlink_log_handler.cpp: Add width specifiers to both sscanf calls (lines 189, 524), add assertionsOriginal prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.