🇰🇷 한글 설명
MariaDB Connector/Node.js에서 보안되지 않은 전송 계층을 통해 PAM 대화 인증이 협상될 때 계정 비밀번호가 노출될 수 있는 취약점입니다. 특정 설정에서 서버 측 플러그인 대화 시 보안 전송 확인 절차가 누락되어, 공격자가 평문 TCP를 통해 인증 스위치 요청을 보내면 비밀번호가 평문으로 전송될 수 있습니다.
💡 쉬운 설명
데이터를 암호화하지 않고 주고받는 연결 방식에서 해커가 중간에 끼어들면 사용자의 데이터베이스 비밀번호를 그대로 훔쳐볼 수 있는 문제입니다. 보안 설정이 제대로 되어 있지 않으면 비밀번호가 암호화되지 않은 상태로 노출될 위험이 있습니다.
🇺🇸 원문 (English)
MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB and MySQL databases. Prior to 3.2.4, 3.3.3, 3.4.6, and 3.5.3, MariaDB Connector/Node.js can disclose an account password when PAM dialog authentication is negotiated over an insecure transport. In lib/cmd/handshake/auth/pam-password-auth.js and lib/cmd/handshake/authentication.js, the SendPamAuthPacketFactory behavior for the server-side plugin dialog lacked the secure-transport gate applied to mysql_clear_password. With the default sslMode=DISABLE and restrictedAuth=null settings, a hostile or on-path server can send an Authentication Switch Request for dialog over plain TCP, causing the connector to return the account password in cleartext. Properly verified TLS and a local Unix socket prevent this path, while fingerprint-only server identity validation is not sufficient. This issue is fixed in versions 3.2.4, 3.3.3, 3.4.6, and 3.5.3.
📍 영향받는 시스템
MariaDB Connector/Node.js 3.2.4, 3.3.3, 3.4.6, 3.5.3 미만 버전
⚔️ 공격 벡터
보안되지 않은 TCP 연결을 통한 중간자 공격(Man-in-the-Middle) 및 인증 스위치 요청 조작
🛡️ 대응 방법
MariaDB Connector/Node.js를 최신 패치 버전(3.2.4, 3.3.3, 3.4.6, 3.5.3 이상)으로 업데이트하거나 TLS를 강제 적용하십시오.
🔧 검증 코드
출력된 버전이 취약한 버전 범위(3.2.4, 3.3.3, 3.4.6, 3.5.3 미만)에 해당하는지 확인하십시오.
npm list mariadb-connector-node
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server