🇰🇷 한글 설명
frangoteam/FUXA 1.3.3 이하 버전에서 인증 확인이 누락된 취약점이 존재합니다. 인증되지 않은 원격 공격자가 DAQ_QUERY Socket.IO 이벤트를 통해 모든 과거 센서 데이터를 조회할 수 있습니다. secureEnabled=true 설정 시 다른 민감한 Socket.IO 이벤트는 토큰을 검증하지만, DAQ_QUERY 핸들러에는 이 검사가 빠져 있습니다.
💡 쉬운 설명
로그인하지 않은 외부인도 공장이나 설비의 과거 센서 기록을 열람할 수 있는 문제입니다. 기록이 유출되면 생산 현황이나 운영 정보가 노출될 수 있습니다.
🇺🇸 원문 (English)
A missing authentication vulnerability in frangoteam/FUXA through 1.3.3 allows an unauthenticated remote attacker to query all historical sensor data via the DAQ_QUERY Socket.IO event. When secureEnabled=true, all other sensitive Socket.IO events (DEVICE_BROWSE, HOST_INTERFACES, DEVICE_TAGS_REQUEST, etc.) call isSocketAdminAuthorized to verify the connection token, but the DAQ_QUERY handler in server/runtime/index.js lacks this check entirely.
📍 영향받는 시스템
FUXA 1.3.3 이하 버전 (frangoteam/FUXA, server/runtime/index.js의 DAQ_QUERY 핸들러)
⚔️ 공격 벡터
인증 없이 Socket.IO 연결을 맺은 뒤 DAQ_QUERY 이벤트를 전송하여 과거 센서 데이터를 요청
🛡️ 대응 방법
FUXA를 1.3.4 이상 버전으로 업그레이드하고, DAQ_QUERY 핸들러에 isSocketAdminAuthorized 인증 검사를 적용하며, 네트워크에서 FUXA 포트 접근을 제한
🔧 검증 코드
출력된 version 값이 1.3.3 이하이면 취약하고, 1.3.4 이상이면 패치된 버전이며, 출력이 없으면 FUXA가 설치되어 있지 않은 것입니다.
cat $(find / -path '*FUXA*' -name package.json 2>/dev/null | head -1) 2>/dev/null | grep '"version"'