Katalog CVE

CVE-2026-13479

NiskieCVSS 3.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

Percentyl 5 - wyżej niż 5% wszystkich znanych CVE

Streszczenie

Usługa synchronizacji czasu w warstwie aplikacyjnej LoRaWAN zawiera podatność polegającą na odczycie poza granicami bufora w funkcji obsługi komendy AppTimeAns. Brak sprawdzenia długości danych powoduje odczyt do 5 bajtów poza zaszyfrowaną ramką, co może prowadzić do zastosowania błędnej korekty czasu.

Ocena ryzyka

Ryzyko dla organizacji jest niskie, ale realne: złośliwy lub skompromitowany serwer sieciowy/aplikacyjny (lub podmiot posiadający klucze sesji) może wpłynąć na oszacowanie czasu w urządzeniu, co może zakłócić działanie aplikacji zależnych od dokładnego czasu. Brak ujawnienia danych lub awarii, ale integralność czasu jest naruszona.

Rekomendacja

Zaleca się zastosowanie poprawki dodającej jawne sprawdzenie długości bufora przed odczytem pól w komendzie AppTimeAns, aby odrzucać zbyt krótkie ramki. Należy również zaktualizować system do wersji zawierającej tę poprawkę.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

The LoRaWAN application-layer clock-synchronization service parses downlinks in clock_sync_package_callback() (subsys/lorawan/services/clock_sync.c). Its command loop only guarantees that the one-byte command id is in bounds; for the CLOCK_SYNC_CMD_APP_TIME (AppTimeAns) command the handler then reads a 4-byte time correction via sys_get_le32() plus a 1-byte token without checking that 5 bytes remain in the receive buffer (len - rx_pos). A short or crafted AppTimeAns therefore reads up to 5 bytes past the end of the decrypted payload. The payload (rx_buf/len) is the decrypted application frame delivered to the registered downlink callback (mcps_indication->Buffer/BufferSize). Reaching the handler requires a frame on the clock-sync port that passes LoRaWAN's MAC integrity check and FRMPayload decryption, so the practical attacker is a malicious or compromised network/application server (the designated sender of AppTimeAns) or a party holding the session keys, rather than an arbitrary radio listener. The over-read is bounded: the backing store is a fixed 255-byte static buffer, so the few stray bytes do not fault, and the read values (time_correction, token) are used only internally and never transmitted, so there is no disclosure to the attacker and no crash. The sole effect is that a stale token matching ctx.req_token can apply a garbage time_correction to the device's own clock offset (ctx.time_offset), a minor integrity impact confined to the victim's time estimate. The fix adds an explicit length check that drops a too-short AppTimeAns. Note the sibling one-byte reads in the periodicity and force-resync handlers remain unguarded with the same negligible impact.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS