728x90
1. 개요
1.1 취약점 요약
Tenda Router의 일부 제품에 deviceId 변수로 인한 스택 버퍼 오버플로우가 발생한 취약점이다.
1.2 취약점 개요
취약점 이름 | Tenda Router Vulnerability on formSetDeviceName function(CVE-2023-38934) | ||
최초 발표일 | 2023.08.07 | CVSS 3.0 | 9.8 |
위험 등급 | 높음 | 현재 상태 | - |
취약점 영향 | 스택 버퍼 오버플로우 | 벤더 | - |
1.3 대상 제품
- F1203 V2.0.1.6
- FH1203 V2.0.1.6
- FH1205 V2.0.0.7(775)
2. 분석
2.1 공격 분석 및 기본 개념
formSetDeviceName.c 함수에서 발생한 스택 버퍼 오버플로우는 공격자가 deviceId를 무작위로 설정해 DoS 혹은 RCE 공격을 수행할 수 있다.
// formSetDeviceName.c
memset(acStack_1ac, 0, 0x80);
memset(acStack_12c, 0, 0x100);
local_2c = 0;
local_28 = 0;
local_24 = 0;
local_20 = 0;
local_1c = 0;
local_18 = 0;
local_14 = 0;
local_10 = 0;
uVar1 = websGetVar(param_1, "deviceId", &DAT_004c4d18);
iVar2 = websGetVar(param_1, "deviceName", &DAT_004c4d18);
if ((iVar2 == 0) || (iVar3 = tpi_set_mac_info(uVar1, iVar2), iVar3 != 0)) {
sprintf((char *)&local_2c, "{\"errCode\":%d}", 1);
websTransfer(param_1, &local_2c);
}
else {
sprintf(acStack_1ac, "client.devicename%s", uVar1);
...
위 함수에서, 사용자로부터 deviceId를 uVar1으로 읽는다. uVar1은 길이 검사를 하지 않고 sprintf()로 전달되어 스택 버퍼인 acStack_1ac에 문제를 일으킬 수 있다.
참고
https://github.com/FirmRec/IoT-Vulns/tree/main/tenda/formSetDeviceName
728x90
'보안 > 취약점 분석' 카테고리의 다른 글
CVE-2023–37734: Buffer-overflow in mp3_audio_converter (0) | 2023.08.11 |
---|---|
CVE-2017-17969: ZIP Shrink Heap Buffer Overflow (0) | 2023.08.11 |
CVE-2022-0453: A Remote Stack Overflow in The Linux Kernel (0) | 2023.08.08 |
CVE-2019-6498: GattLib 0.2 Stack Buffer Overflow (0) | 2023.08.08 |
CVE-2017-15048: Zoom Linux Client Stack-based Buffer Overflow (0) | 2023.08.08 |