1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-27 15:31:17 +01:00
Marian Buschsieweke 8a178f49e7
sys/fido2: fix CBOR parsing
The TinyCBOR library takes a `size_t *` length argument in many
functions which at function call contains the length of a buffer, and
at exit the actual size of the data. The FIDO-2 code however uses
`uint8_t` fields in `struct`s to store the data. Previously, a pointer
to that `uint8_t` filed was just casted to `size_t *`, resulting in
three neighboring bytes also being interpreted as being part of the
buffer size - which could result in undetected buffer overflows.
Similar, upon exit of the function not only the `uint8_t` sized length
`struct` member but also three neighboring bytes were written to.

I didn't care to investigate, but this really looks like crafted CBOR
payloads send to the FIDO2 implementation could result in arbitrary
code execution on the device.
2021-11-13 20:32:02 +01:00
..
2021-10-05 14:15:57 +02:00
2021-02-22 14:54:14 +01:00
2021-02-22 14:54:14 +01:00
2020-11-12 22:50:53 +01:00
2021-08-13 19:50:38 +02:00
2021-02-22 14:54:14 +01:00
2020-11-18 18:38:44 +01:00
2020-11-06 15:57:52 +01:00
2021-08-13 19:50:38 +02:00
2021-02-22 14:54:14 +01:00
2020-10-23 11:27:48 +02:00
2021-11-13 20:32:02 +01:00
2021-01-21 10:03:44 +01:00
2021-01-18 14:14:13 +01:00
2021-08-13 19:50:38 +02:00
2021-01-21 11:22:32 +01:00
2021-01-26 17:40:30 +01:00
2021-02-22 14:54:14 +01:00
2020-11-25 12:00:13 +01:00
2021-09-27 17:30:05 +02:00
2021-02-22 14:54:15 +01:00
2021-08-13 19:50:38 +02:00
2021-02-22 14:54:15 +01:00
2020-11-06 15:57:53 +01:00
2021-08-04 14:01:28 +02:00
2021-08-13 19:50:38 +02:00
2021-10-01 11:26:15 +02:00
2021-10-01 11:26:15 +02:00
2021-10-01 11:26:15 +02:00
2021-10-01 11:26:15 +02:00
2021-09-02 23:12:31 +02:00