오늘은 TP-Link 공유기 CVE-2024-53375 취약점 간단 분석에 대해 글을 적어보겠습니다.
일단 HomeShield 기능이 존재하는 TP-Link 공유기 들은 다음과 같습니다.
TP-Link Archer Series
TP-Link Deco Series
TP-Link Tapo Series
일단 해당 취약점이 공개된 부분만 통해서 적어 봅니다.
문제의 코드
function AVIRA_GATHER: tmp_get_sites (app_form)
local data = json.decode(app_form.data)
local res = {}
local result = {}
debug("")
debug("===> opcode 0x0523: tmp_get_sites")
local ownerId = data.ownerId --int
local day = data.date --string, today/yesterday
local siteType = data.type --string website type, block/visit
local startIndex = data.startIndex --int
local amount = data.amount --int
-- NOTE: get response data
-- PROC_PCTL = "/proc/pctl/"
-- PROC_BLOCK = "/proc/block/block_insight"
-- Init response data
result.startIndex = startIndex
result.amount = amount
result.sum = 0
result.websiteList = {}
if siteType == "visit" then
if startIndex == 0 then
os.execute("rm -f /tmp/visitList")
os.execute("cp".. PROC_PCTL .. ownerId .. /tmp/visitList")
문제점
avira.lua 파일과 관련이 있는 취약점입니다.
Avira 는 독일에 있는 보안 업체입니다. root (최대한의 액세스) 운영 체제의 기본 라우터에 대한 액세스가 됩니다.
os.execute로 인한 명령 주입(Command Injection)
os.execute(cp..PROC_PCTL...ownerId.../tmp/visitList)
사용자로부터 입력받은 ownerId를 그대로 문자열로 이어붙여서 cp 명령을 실행하고 있음
예를 들어 ownerId 값이 정상적인 정수나 문자열이 아닌 ; rm -rf / 와 같은 형태
시스템 명령이 악의적으로 확장 가능
Lua에서 os.execute 사용 시 문자열을 그대로 명령어에 전달하므로 반드시 입력값에 대한 검증(Sanitization)과 이제 분리 생각을 해야 함
인증된 사용자는 해당 취약점을 통해 라우터의 root 권한으로 원격 코드 실행이 가능해지는 문제가 발생
OwnerId 변수에 있으며 해당 함수는 OwnerId라는 로컬 변수를 선언하고 해당 변수는 data.ownerId 변수에 의해 채워지며 데이터 변수는 app_from.data 변수의 json에서 디코딩되고 있습니다.
OwnerId 변수는 검사, sanitized 처리 등을 거치지 않은 채 마지막 줄의 os.execute 함수에 전달
개발자는 --int 주석을 추가하여 ownerId가 정수여야 함을 표시했지만 현재로서는 가정일 뿐입니다.
즉 해당 TP-Link 공유기를 사용을 하고 계시는 분들은 최신 펌웨어로 올리는 것을 권장합니다.
'소프트웨어 팁 > 보안 및 분석' 카테고리의 다른 글
북한 라자루스(Lazarus)에서 만든 브라우저 악성코드-11.js(2024.12.28) (0) | 2025.01.06 |
---|---|
노드 VPN 스마트폰 IP 우회 변경 사용법(3개월 무료,신년 노드 VPN 70% 할인) (2) | 2025.01.01 |
북한 APT 리퍼(Reaper)에서 만든 악성코드-동북공정(미국의회조사국(CRS Report).pdf.lnk(2024.4.3) (0) | 2025.01.01 |
윈도우 11 KB5048685 업데이트로 인해 와이 파이 및 시작 메뉴 작동이 중지됨 (0) | 2024.12.27 |
Kimsuky(김수키)에서 만든 자유 아시아 방송으로 위장 해서 특정 북한 인권운동가 노린 악성코드-log_processlist.ps1(2024.12.02) (0) | 2024.12.26 |
다시 돌아온 LockBit 4.0 랜섬웨어 간단 분석 (0) | 2024.12.25 |
북한 김수키(Kimsuky)에서 만든 악성코드-1.txt(2024.12.14) (0) | 2024.12.24 |
북한 해킹단체 김수키(Kimsuky)에서 만든 금융거래확인서로 위장한 악성코드-confirmation.chm(2024.12.10) (0) | 2024.12.20 |