Files
meshtastic_firmware/src
nightjoker7andGitHub a6b1a69630 StoreForwardModule::historyAdd: memcpy source size, not buffer capacity (#10250)
`memcpy(... p.payload.bytes, meshtastic_Constants_DATA_PAYLOAD_LEN)`
reads past the actual payload when the incoming packet's payload is
shorter than `DATA_PAYLOAD_LEN` (237 bytes). The code just above
already records the correct size:

    this->packetHistory[...].payload_size = p.payload.size;

but then the memcpy ignores that and copies the full buffer capacity,
pulling uninitialized / adjacent memory bytes into the history entry.
Those extra bytes are later rebroadcast whenever the Store & Forward
module replays the packet.

Fix: memcpy using `p.payload.size` (the actual payload length) instead
of the constant buffer capacity.

Classification: bounded out-of-bounds READ into the protobuf scratch
buffer. Not directly exploitable for RCE (the destination buffer is
also DATA_PAYLOAD_LEN), but leaks adjacent memory into replayed
packets and is a latent correctness bug.
2026-04-22 21:04:37 -05:00
..
2026-03-24 12:39:21 -05:00
2026-04-21 20:03:40 -05:00
2026-04-21 17:13:55 +02:00
2026-02-20 10:38:07 -06:00
2026-02-19 07:16:33 -06:00
2026-01-29 05:56:19 -06:00
2026-02-19 07:16:33 -06:00
2026-04-18 11:17:03 -05:00
2026-03-04 05:59:42 -06:00
2023-01-21 21:23:24 +01:00
2025-03-01 06:18:33 -06:00