v4.0.27 (2026-06-26)
HEAD-wide 10-angle code review 翻出 14 P0 全修 + 2 个真机 patch。
改动
v4.0.26 review 14 finding 全修 (f887b34):
- #1
loadConfig6xstrcpy→snprintf(NVS 超长串缓冲溢出) - #2 cmgs drain 加 10ms delay(防双 core 抢 usbh_cdc buffer race)
- #3 reserved-DCS sniff
udHex→dataHex(defense-in-depth) - #4
pdu_ud_offset_ex内 sniff 跳 UDH concat IE 头 - #5
cmgs_jobgen counter 防 worker hang UAF - #6 web/config.h SSID full XSS escape(补
< > & ') - #7
parse_udhget2 bounds + hex 校验 - #9
/api/rawsanitizeForJson - #10
handle_restart改 detached task - #11 7-bit
numChars-=7strstr→parse_udh(防假命中) - #12
pdu_udh_offset加udhStart参数(限定 IE pattern 扫描起点) - #13 cfgIsHardcoded 用 NVS
cfg.provisioned标记 - #15 TX ref 8→16-bit(防 +CMS ERROR 331 重复 ref)
- #14 REFUTED(
/api/factory算 OTA 范围不需 auth)
v4.0.26.1 (2c57777): 回退 #8 TON-aware valueOctets
- 真机 Verify 号码显示
@@òD£乱码 - ML307 oaLen 字段单位 = packed octets×2(非标准),BCD 公式碰巧正确
v4.0.26.2 (7846202): stash_udh_part UDHL+UDH 没跳过
- True App 2 段 concat 解码出
P77ΔΘΣΘÄΠΣÄΠΘΞΔX ÆΣ Ψ乱码 pdu_ud_offset_ex返回 UD 段起始(UDHL 字节位置),不是 UD 数据起始- 修法:读 UDHL byte 算
(UDHL+1)*2跳过 UDH
测试
- host test 326/3 PASS(3 baseline reference FAIL 不动)
- 真机验证:dtac 英文 OTP ✅ / Verify 泰文 OTP ✅ / True App 英文 concat OTP ✅
烧录
OTA: curl -X POST http://<device-ip>/update -F "file=@firmware.bin"