🌋 (주절주절) react.js / next.js RCE 보안문제와 아기 히틀러 딜레마

2~3일 전부터 해외 커뮤니티에서는 크게 이슈가 됐고, 한국 뉴스피드 등은 이제 좀 올라오는거 같다.

HN: RCE Vulnerability in React and Next.js (github.com/vercel) 댓글을 보면 충격적이다.

예전 log4j RCE보다 내 생각엔 위험할 것 같다. …왜냐하면 누구나 아무 생각 없이 그냥 써왔을거고, 그러려고 선택한 스택일테니까. 🥟


/posts/2025-12dec/toxic-js.jpeg

공교롭게도, HN: 30 years ago today "Netscape and Sun announce JavaScript" (archive.org) …였다고 한다. 🎂

그리고 문득 또 다른 거의 30여년 전의 어떤 논쟁, 세상을 뒤바꾼 논쟁이 떠올랐다:

comp.lang.tcl: Why you should not use Tcl

그리고 나머지는 잘 아는대로, Brendan Eich은 원래는 Scheme을 웹브라우저에 넣고 싶었지만, 마케팅에 유리할 것 같은 "Java스러운" 언어를 10일만에 만들고, 그게 JavaScript이 되었다고 한다. 1

어쩌면 그 언어가 Tcl이었을수도 있고, 어쩌면 그냥 Scheme이었을수도 있겠지만.

아참. comp.lang.tcl-의 저 유명한 rms의 글의 내용도, Tcl언어가 외부의 입력을 그대로 실행(eval)해버릴 위험이 크므로, Tcl은 제발 그만 쓰고 (자기가 좋아하는 리습계열인) Scheme을 써야 한다는 주장이다.

하지만 흥미롭게도 현재의 우리는 스킴을 쓰지도, 웹브라우저에 스킴이 내장되지도 않은 시대를 살고 있다. 더더욱이 rms의 GNU Guile도 그렇게 메인스트림 언어나 스크립팅 언어라고 하기엔 좀 인기가 많이 부족한 느낌이다.

GNU GIMP의 Script-Fu이라던지 나는 재밌게 써보긴 했었다. 그런데 그마저도 Guile이 아니라 SIOD 구현이었던 것 같다.2 ㅎㅎ

어차피 현대 사회의 모습을 남들이 이해하건 않건 규정한 자유소프트웨어/오픈소스의 시작인 GNU Manifesto-에서부터 "…(우리는) 커먼리습을 다 구현해놓았고, 앞으로 다들 그걸 쓰게 될 것이다."-는 식의 말들도 지금에 와서 보면 이게 뭔 뜬금 없는 과거의 상상화스러운 미래비전인가 싶다.

흥미롭다.

이해하건 못하건, 현재의 인터넷과 모든IT 기반이 오픈소스에 깊이 의존하는데, 그 시대를 만든 안목자의 선언에서 그다지 이뤄지지 않은 부분도 많다는걸 생각해본다. 지금 시대에 유명인사들이 하는 모든 말들이 꼭 예언적이진 않을거란 생각을 하게 된다.

그리고 이상하게도, Tcl 같은 언어에서 멀리 떠나가 Scheme + Java => JavaScript 같은 요상한 조합을 만들어 내면서까지 웹브라우저에 스크립팅 언어를 심었는데, 그게 결국엔 먼 시간을 돌고 돌아서 보안문제를 마치 원래 Tcl이 심어져 있었더라면 일으켰을 양상을 보안이슈를 만드는 것 같기도 하다.

문득 역사나 예언을 전혀 모르지만 이런 이야기가 떠올랐다: 위키백과: "Killing baby Hitler" 💀

Footnotes


2

카메라로 OpenCV 안면인식을 하고, 그에 따라 얼굴에 "가상화장"을 적용해주는 프로젝트에 참여한 적이 있다. GIMP Headless Server을 만들고, 좌표들에 따라 Scheme스크립트를 실행해서 이미지에 "필터"를 적용해주는 부분, JSON/Telnet기반 프로토콜을 정의하고 요청을 받아 처리하는 서버를 만들었던 것 같다.