Commit Graph

53839 Commits

Author SHA1 Message Date
Erhan Kurubas
4e845e262a fix(sysview): add prefix to the example sysview module desc 2026-07-08 12:59:44 +02:00
Erhan Kurubas
f44867619e fix(sysview): handle variable-length timestamp in TRACE_STOP validation 2026-07-08 12:59:44 +02:00
Erhan Kurubas
27dc9c956f change(ci): enable esp32s31 jtag tests 2026-07-08 12:59:44 +02:00
Samuel Obuch
1f47009339 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20260703' into 'master'
feat(tools): update openocd version to v0.12.0-esp32-20260703

See merge request espressif/esp-idf!50423
2026-07-08 12:47:40 +02:00
morris
d5c193167a Merge branch 'refactor/move_regdma_entry_config_to_driver_layer_jpeg' into 'master'
refactor(jpeg): move sleep retention config into driver layer

See merge request espressif/esp-idf!50465
2026-07-08 17:28:06 +08:00
C.S.M
3359f647c5 Merge branch 'feat/h21_temperature_sensor' into 'master'
feat(temperature_sensor): Add temperature sensor support for esp32h21

Closes IDF-11624 and IDF-11625

See merge request espressif/esp-idf!50419
2026-07-08 17:02:58 +08:00
Song Ruo Jing
056590f7a4 Merge branch 'feature/uart_rs485_half_duplex_collision_detection' into 'master'
feat(uart): add collision detection test cases for RS485

Closes IDFGH-15463

See merge request espressif/esp-idf!50244
2026-07-08 17:00:00 +08:00
Rahul Tank
63943f4d8b Merge branch 'bugfix/ai_reviewer_nimble_1.6' into 'master'
fix(nimble): Fixes for AI reported issues

See merge request espressif/esp-idf!50012
2026-07-08 13:55:54 +05:30
Fu Hanxi
58b12cbf42 Merge branch 'ci/simplify-ci' into 'master'
ci: remove pip-cache and other unused jobs

See merge request espressif/esp-idf!50301
2026-07-08 09:54:00 +02:00
Wang Meng Yang
0a3ccbc151 Merge branch 'bugfix/smp_sec_flags' into 'master'
fix(bt/bluedroid): fixed several security issues from NVIDIA

Closes SEC-084, SEC-713, SEC-1143, SEC-1153, SEC-1164, and SEC-1169

See merge request espressif/esp-idf!50200
2026-07-08 12:41:25 +08:00
Song Ruo Jing
4a94a5a396 fix(stdio): add console input ability when selects ESP_CONSOLE_UART_CUSTOM_NUM_1 2026-07-08 12:08:46 +08:00
Song Ruo Jing
ef635c533b feat(uart): add collision detection test cases for RS485
Related https://github.com/espressif/esp-idf/issues/16101
2026-07-08 12:08:40 +08:00
Wang Meng Yang
8ef144e239 Merge branch 'bugfix/idf_ci_hid_example' into 'master'
fix(bt/example): Add print the device name to verify if it matches in HID example

Closes IDFCI-9124 and IDFCI-3631

See merge request espressif/esp-idf!50375
2026-07-08 11:20:15 +08:00
Wang Meng Yang
7bfe369f86 Merge branch 'bugfix/bug_bounty_av' into 'master'
fix(bt/bluedroid): Fix bug bounty issues about A/V from NVIDIA

Closes SEC-1186 and SEC-1187

See merge request espressif/esp-idf!50318
2026-07-08 11:18:23 +08:00
Marius Vikhammer
ff88ad88a9 Merge branch 'test/linux-full-component-build' into 'master'
test: add Linux full component build app

See merge request espressif/esp-idf!50377
2026-07-08 10:13:12 +08:00
Martin Vychodil
5d8acd46e9 Merge branch 'fix/fatfs_6682_fat32_overflow' into 'master'
fix(storage/fatfs): fix FAT32 mount integer overflow (CVE-2026-6682)

See merge request espressif/esp-idf!50448
2026-07-08 05:53:45 +08:00
Tomáš Rohlínek
6a20a83421 fix(storage/fatfs): fix FAT32 mount integer overflow (CVE-2026-6682)
The initial CVE-2026-6682 fix (merged in !50362) hardened the exFAT
mount path, but the CVE as reported by runZero is a FAT32 defect in
mount_volume() and is reachable in ESP-IDF's default configuration
(exFAT and 64-bit LBA disabled). This corrects the fix.

Root cause: `fasize *= fs->n_fats` is a DWORD multiply with no overflow
guard. A crafted BPB_FATSz32 such as 0x80000001 with NumFATs=2 wraps
`fasize` to 0x00000002. The wrapped (too-small) FAT size then places
`fs->database` inside the FAT region, so a forged directory entry in the
overlapping sector yields an attacker-controlled `finfo.fsize`. Any
caller that uses that size as a read length overflows its buffer with
attacker-controlled bytes (CVSS 7.6, path to RCE). The later
`fs->fsize < szbfat` check does not catch this because it compares the
un-doubled single-FAT size, which is still large.

Fix: reject a per-FAT size that overflows DWORD when multiplied by the
FAT count, and reject a reserved+FAT+root system-area size that overflows
DWORD, before either value is used to derive the data-area base.

The previous exFAT cluster-heap/bitmap 64-bit promotions are retained as
defense-in-depth and their comments relabeled accordingly (they are not
CVE-2026-6682). The SBOM cve-exclude-list reason is updated to describe
the FAT32 overflow and its fix.
2026-07-07 16:36:30 +02:00
Li Shuai
f70ea602fe Merge branch 'feat/idfgh-17859' into 'master'
add kconfig option for REGDMA sleep clock ICG

Closes IDFGH-17859

See merge request espressif/esp-idf!50228
2026-07-07 21:50:10 +08:00
Wang Meng Yang
78fea40c2e Merge branch 'fix/tx_power_validate' into 'master'
fix(bt): validate BR/EDR TX power against chip-supported range

See merge request espressif/esp-idf!50072
2026-07-07 20:38:45 +08:00
Jiang Jiang Jian
1605930498 Merge branch 'bugfix/fix_offchan_rx_fail_when_spiram_enabled' into 'master'
fix(wifi): fixed the offchan tx fail when SPIRAM_TRY_ALLOCATE_WIFI_LWIP enabled

Closes WIFI-7402

See merge request espressif/esp-idf!50194
2026-07-07 19:34:43 +08:00
Samuel Obuch
808f860b43 feat(tools): update openocd version to v0.12.0-esp32-20260703 2026-07-07 13:23:06 +02:00
morris
47f4e5d412 refactor(jpeg): move sleep retention config into driver layer
Move per-target JPEG regdma retention descriptors out of esp_hal_jpeg
and into
esp_driver_jpeg so the codec driver owns its backup scope and restore
flow.
2026-07-07 19:03:05 +08:00
Rahul Tank
6d835d5226 fix(nimble): Fixes for AI reported issues 2026-07-07 15:45:24 +05:30
Mahavir Jain
05250d7dd1 Merge branch 'feat/enable_cross_signed_cert_suppport_default' into 'master'
feat(mbedtls): enable cross signed certificate verification support by default

See merge request espressif/esp-idf!49905
2026-07-07 14:47:37 +05:30
Fu Hanxi
d8f4d6ccda ci: remove build report and failed job report 2026-07-07 11:07:16 +02:00
Fu Hanxi
148c5e26f7 ci: remove pip-cache
we have global pip mirror now
2026-07-07 11:06:03 +02:00
Hu Rui
484f5f3426 Merge branch 'feat/usj_custom_intr_prior' into 'master'
feat(usj): support set interrupt priority

Closes IDF-7961

See merge request espressif/esp-idf!50376
2026-07-07 16:35:06 +08:00
chenqingqing
9fbebf293d fix(bt): clarify BR/EDR TX power behavior in menuconfig help 2026-07-07 15:39:26 +08:00
zhangyanjiao
cf695709f1 fix(wifi): fixed the offchan tx fail when SPIRAM_TRY_ALLOCATE_WIFI_LWIP enabled 2026-07-07 15:31:00 +08:00
C.S.M
fff527fbd7 feat(temperature_sensor): Add temperature sensor support for esp32h21 2026-07-07 15:05:39 +08:00
C.S.M
e36835fe0c Merge branch 'fix/jpeg_enc_encrypt' into 'master'
fix(jpeg): Jpeg can encode and decode in encryption situation

Closes IDF-15061

See merge request espressif/esp-idf!50063
2026-07-07 13:36:20 +08:00
Mahavir Jain
cf322e283f Merge branch 'fix/bootloader_anti_rollback_konfig' into 'master'
fix(bootloader): Hide bootloader anti-rollback Kconfig where not supported

See merge request espressif/esp-idf!50413
2026-07-07 10:40:21 +05:30
Nachiket Kukade
87ed41697c Merge branch 'fix/pbkdf2_sha256_mbedtls4_guard' into 'master'
fix(wpa_supplicant): guard pbkdf2_sha256 for PSA-provided SHA-256

See merge request espressif/esp-idf!50395
2026-07-07 12:25:47 +08:00
Meet Patel
2fd3ccbb19 Merge branch 'test/idf-additions-coverage' into 'master'
test(freertos): expand IDF additions test coverage

See merge request espressif/esp-idf!50303
2026-07-07 09:44:56 +05:30
Song Ruo Jing
e00086907a Merge branch 'bugfix/uart_sw_flow_ctrl_xoff_char' into 'master'
fix(uart): fix uart sw flow ctrl XOFF char write to wrong reg on ESP32C6

Closes IDFGH-17885

See merge request espressif/esp-idf!50296
2026-07-07 12:11:30 +08:00
C.S.M
048b4dde0c feat(psram): Add unencrypted region for psram for esp32s31 2026-07-07 10:42:45 +08:00
C.S.M
fbdf6d7427 fix(jpeg): JPEG can encode and decode in encryption situation 2026-07-07 10:42:45 +08:00
morris
fbe6d9005a Merge branch 'refactor/move_regdma_entry_config_to_driver_layer_sdm' into 'master'
refactor(sdm): move sleep retention config into driver layer

See merge request espressif/esp-idf!50364
2026-07-07 00:07:33 +08:00
Tomas Rohlinek
5fde421955 Merge branch 'fix/fatfs_vulnerabilities' into 'master'
fix(fatfs): harden against runZero 2026 FatFs bugs

See merge request espressif/esp-idf!50362
2026-07-06 15:20:15 +02:00
Song Ruo Jing
f324ddd849 ci(uart): enable test for esp32h4 2026-07-06 20:53:28 +08:00
Song Ruo Jing
a5ff63830e fix(uart): fix uart sw flow ctrl XOFF char write to wrong reg on ESP32C6
Add software flow control test case

Introduced in e6ef4d1791

Closes https://github.com/espressif/esp-idf/issues/18779
2026-07-06 20:49:56 +08:00
chenqingqing
e42038bad2 fix(bt): validate BR/EDR TX power against chip-supported range
The TX power range configurable in menuconfig only describes the maximum possible range.
Add a function to report the real range, and validate the configured BR/EDR TX power values during conroller init.
2026-07-06 20:45:21 +08:00
Tomáš Rohlínek
5716f444d4 fix(storage/fatfs): record non-applicable runZero 2026 CVEs in SBOM
Document the three runZero "Seven FatFs bugs" CVEs that require no source change
in this component, so vulnerability scanners have their disposition:

  - CVE-2026-6684: GPT partition-scan loop DoS. Already fixed upstream in R0.16,
    where test_gpt_header() caps the partition-entry count at 128.
  - CVE-2026-6686: read of uninitialized clusters after f_lseek() past EOF.
    Longstanding, behavioral; not a memory-safety defect and zero-filling every
    extended cluster is prohibitively costly on flash.
  - CVE-2026-6688: long-filename overflow in downstream callers. Not exposed in
    ESP-IDF; vfs_fat.c uses bounded copies and fname is bounded by FF_MAX_LFN.

Reference: https://www.runzero.com/blog/fatfs-bugs/
2026-07-06 13:39:24 +02:00
Tomáš Rohlínek
838ea02c56 fix(storage/fatfs): clamp exFAT volume-label length in f_getlabel() (CVE-2026-6687)
f_getlabel() extracts the exFAT volume label with a loop bounded by the on-disk
byte dj.dir[XDIR_NumLabel] (0-255):

    for (si = di = hs = 0; si < dj.dir[XDIR_NumLabel]; si++)
        wc = ld_16(dj.dir + XDIR_Label + si * 2);

The exFAT label field holds at most 11 UTF-16 units (22 bytes). A crafted
directory entry with a larger count both reads past the 22-byte label field and,
through put_utf(... &label[di], 4), writes past the end of the caller-provided
label buffer (the canonical API examples use small fixed stack buffers) -> stack
buffer overflow.

Clamp the character count to the exFAT maximum of 11 before the extraction loop.
Record the CVE in the component SBOM.

Note: f_getlabel() takes no destination-buffer size, so under UTF-8 output
(FF_LFN_UNICODE == 2) 11 units can still expand to up to 34 bytes; the clamp
downgrades this from attacker-unbounded to spec-bounded. ESP-IDF's VFS layer
does not call f_getlabel(); direct callers on untrusted media should size their
buffer accordingly. A complete fix requires an upstream size-aware API change.

Reference: https://www.runzero.com/blog/fatfs-bugs/
2026-07-06 13:38:59 +02:00
Tomáš Rohlínek
98416b7e13 fix(storage/fatfs): guard dirty-cache refill against unsigned LBA wrap (CVE-2026-6685)
After a direct multi-sector disk_read()/disk_write(), FatFs decides whether the
cached sector overlaps the direct-I/O range with:

    fp->sect - sect < cc          (and the FF_FS_TINY variant fs->winsect - sect < cc)

`sect`, `fp->sect` and `fs->winsect` are unsigned LBA_t. On 32-bit LBA_t builds,
if the cached sector is below `sect`, the subtraction wraps to a huge value that
can still compare `< cc`, so the code computes a bogus large offset:

  - in f_write() it mis-copies from the direct write buffer (data corruption);
  - in f_read() it is worse: memcpy(rbuff + (wrapped_offset * SS), ...) is an
    out-of-bounds WRITE into the caller-supplied read buffer.

Add an explicit lower-bound check (fp->sect >= sect, resp. fs->winsect >= sect)
before the range test on both the read and write paths and both the FF_FS_TINY
and normal variants, so the condition is exactly "cached sector lies within
[sect, sect + cc)". Record the CVE in the component SBOM.

Reference: https://www.runzero.com/blog/fatfs-bugs/
2026-07-06 13:38:29 +02:00
Tomáš Rohlínek
7d73545564 fix(storage/fatfs): reject empty exFAT cluster heap and guard divisor (CVE-2026-6683)
The FAT12/16/32 mount path rejects a zero cluster count, but the exFAT path
accepted NumClusters == 0. That yields fs->n_fatent == 2, and sync_fs() later
computes the "percent in use" field as:

    ... * 100 / (fs->n_fatent - 2)

which is a division by zero (n_fatent - 2 == 0) -> crash. On a device that
syncs during an update this can brick the unit.

Reject ncl == 0 at exFAT mount time, and add a defense-in-depth
`fs->n_fatent > 2` guard around the division in sync_fs() so the divisor can
never be zero even if some future path produces such a filesystem object.
Record the CVE in the component SBOM.

Reference: https://www.runzero.com/blog/fatfs-bugs/
2026-07-06 13:37:59 +02:00
Tomáš Rohlínek
81ec08b949 fix(storage/fatfs): fix exFAT mount integer overflow (CVE-2026-6682)
The exFAT mount path validates that the media is large enough to hold the
declared cluster heap with:

    if (maxlba < (QWORD)fs->database + ncl * fs->csize) ...

`ncl` (DWORD, up to MAX_EXFAT) and `fs->csize` (WORD) are both promoted to
`unsigned int`, so `ncl * fs->csize` is evaluated in 32-bit arithmetic and can
wrap before the QWORD promotion of the sum. A crafted image with a large
NumClusters/SecPerClus can therefore make an undersized volume pass the "size
is large enough" check; subsequent cluster->sector math then addresses media
outside the actual device.

Promote the multiply to 64-bit ((QWORD)ncl * fs->csize). Apply the same
promotion to the bitmap-base computation ((LBA_t)fs->csize * (bcl - 2)), which
has the identical overflow shape. Record the CVE in the component SBOM.

Reference: https://www.runzero.com/blog/fatfs-bugs/
2026-07-06 13:37:28 +02:00
Tomáš Rohlínek
ae0fad3bac fix(storage/fatfs): correct SBOM version to R0.16
The vendored FatFs sources are revision R0.16 (FF_DEFINED == 80386, per
components/fatfs/src/ff.h and ff.c) but the SBOM recorded R0.15. Correct the
recorded version so vulnerability tracking matches the actual sources.
2026-07-06 13:36:59 +02:00
morris
18f50fefa9 Merge branch 'feat/esp_macro_align_up_down' into 'master'
refactor(esp_common): centralize ALIGN_UP/ALIGN_DOWN into esp_macros.h

See merge request espressif/esp-idf!50335
2026-07-06 19:09:14 +08:00
Hu Rui
048630bd9a feat(usj): support set interrupt priority 2026-07-06 19:08:13 +08:00