Screeps 게임, **console.log**로 인한 RCE 취약점 노출!

by DD
4개월 전
조회수 10

Screeps 게임 내 console.log 기능이 HTML 파싱을 허용하여 원격 코드 실행(RCE) 취약점이 발생함

개발사는 취약점의 심각성을 부인하며, 사용자 책임론(User Blaming)을 펼침

커뮤니티는 해당 취약점을 활용한 클라이언트 변조(Client-Side Modification)를 공유

개발사의 늑장 대응과 부적절한 소통 방식에 대한 비판 여론(Criticism)이 거세짐

console.log의 HTML 파싱 문제

Screeps 게임의 console.log 기능은 HTML 파싱을 허용하여, 악의적인 코드를 삽입할 수 있는 XSS(Cross-Site Scripting) 공격의 가능성을 열어두었다. 특히, Steam 클라이언트가 브라우저 환경을 재사용하면서, 샌드박싱(Sandboxing) 부재로 인해 원격 코드 실행(RCE)까지 가능해지는 심각한 상황이 발생했다. 이는 게임 내에서 계정 탈취(Account Takeover) 및 시스템 권한 획득으로 이어질 수 있는 치명적인 취약점이다.

개발사의 미흡한 대응과 책임 회피

개발사는 해당 취약점에 대해 심각성을 인지하지 못하고(Lack of Awareness), 사용자에게 책임을 전가하는 태도를 보였다. 초기에는 취약점 존재 자체를 부인하며, 이후에도 '사용자 과실'로 치부하는 등 소극적인 태도(Passive Attitude)를 유지했다. 이러한 대응은 커뮤니티의 반발을 불러일으켰으며, 개발자의 보안 의식 부재(Lack of Security Awareness)에 대한 비판으로 이어졌다.

커뮤니티의 취약점 활용과 클라이언트 변조

Screeps 커뮤니티는 해당 취약점을 활용하여 클라이언트 변조(Client-Side Modification)를 시도하고, 관련 정보를 공유하는 등 적극적인 모습을 보였다. 특히, console.log를 악용하여 게임 내 기능을 변경하거나, 다른 플레이어의 계정을 탈취하는 시도가 있었다. 이러한 행위는 게임의 공정성을 해치고, 보안 위험(Security Risk)을 증가시키는 결과를 초래했다.

취약점 수정 이후의 논란

개발사는 논란 이후 console.logUnsafe 메서드를 추가하여 HTML 파싱 기능을 분리하는 방식으로 문제를 해결했다. 하지만, 여전히 개발사의 소통 방식과 취약점 대응(Vulnerability Response)에 대한 비판이 지속되고 있다. 특히, 개발사가 취약점의 심각성을 축소하고, 책임 회피(Blame Shifting)하는 태도는 커뮤니티의 불신을 더욱 깊게 만들었다.

Screeps: How a game about programming exposed thousands of players to remote code execution