🇰🇷 한글 설명
angular-expressions 1.1.2 미만 버전에서 사용자 입력값을 expressions.compile() 함수로 처리할 때 원격 코드 실행(RCE)이 가능한 취약점이 발견되었습니다. 공격자는 '.constructor.constructor' 기법을 사용하여 보안을 우회하고 브라우저 스크립트 실행 또는 서버 측 자바스크립트 실행을 수행할 수 있습니다.
💡 쉬운 설명
사용자가 입력한 글자를 프로그램이 잘못 해석하여 해커가 원하는 명령어를 실행할 수 있게 만드는 보안 구멍입니다. 이를 통해 해커는 웹사이트를 조작하거나 서버를 마음대로 제어할 수 있습니다.
🇺🇸 원문 (English)
angular-expressions is "angular's nicest part extracted as a standalone module for the browser and node". In angular-expressions before version 1.1.2 there is a vulnerability which allows Remote Code Execution if you call "expressions.compile(userControlledInput)" where "userControlledInput" is text that comes from user input. The security of the package could be bypassed by using a more complex payload, using a ".constructor.constructor" technique. In terms of impact: If running angular-expressions in the browser, an attacker could run any browser script when the application code calls expressions.compile(userControlledInput). If running angular-expressions on the server, an attacker could run any Javascript expression, thus gaining Remote Code Execution. This is fixed in version 1.1.2 of angular-expressions A temporary workaround might be either to disable user-controlled input that will be fed into angular-expressions in your application or allow only following characters in the userControlledInput.
📍 영향받는 시스템
angular-expressions version < 1.1.2
⚔️ 공격 벡터
사용자 입력값이 포함된 텍스트를 expressions.compile() 함수에 전달하여 특수하게 조작된 페이로드를 실행함
🛡️ 대응 방법
angular-expressions를 1.1.2 버전 이상으로 업데이트하거나, 사용자 입력값에 대한 엄격한 화이트리스트 필터링을 적용함
🔧 검증 코드
출력된 결과에서 angular-expressions의 버전을 확인하여 1.1.2 미만인지 체크함
npm list angular-expressions
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server