🇰🇷 한글 설명
FUXA 소프트웨어의 TDengine DAQ 스토리지 커넥터에서 백슬래시를 제대로 이스케이프하지 못하는 취약점이 발견되었습니다. 공격자가 조작된 태그 식별자를 전송하면 SQL 인젝션이 발생하여 인증 여부와 관계없이 PLC 태그 값, 장치 식별자 및 이름과 같은 민감한 데이터를 탈취할 수 있습니다.
💡 쉬운 설명
웹 기반 제어 화면 소프트웨어의 데이터 저장 기능에 허점이 있어, 악의적인 명령어를 입력하면 시스템 내부의 중요한 정보를 몰래 빼낼 수 있습니다. 이로 인해 공장 장비의 과거 데이터나 장치 정보가 외부로 유출될 위험이 있습니다.
🇺🇸 원문 (English)
FUXA is a web-based Process Visualization (SCADA/HMI/Dashboard) software. Prior to 1.3.2, the TDengine DAQ storage connector's escapeTdString function in server/runtime/storage/tdengine/index.js doubles single quotes but does not escape backslashes. A remote unauthenticated attacker can submit a crafted sids tag identifier through GET /api/daq or the Socket.IO DAQ_QUERY event so TDengine interprets the backslash and quote sequence as SQL syntax. The injected query can return every row from fuxa.meters, exposing historical PLC tag values, device identifiers, and device names even when FUXA authentication is enabled. This issue is fixed in version 1.3.2.
📍 영향받는 시스템
FUXA 1.3.2 미만 버전
⚔️ 공격 벡터
GET /api/daq 요청 또는 Socket.IO DAQ_QUERY 이벤트를 통한 조작된 sids 태그 식별자 전송
🛡️ 대응 방법
FUXA를 최신 보안 패치가 적용된 버전 1.3.2 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 1.3.2보다 낮으면 취약한 상태이며, 1.3.2 이상이면 안전합니다.
npm list fuxa | grep -E 'fuxa@([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2})'