• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
잡담

가장 최신 버전 Nginx Proxy Manager에서도 코드 인젝션 취약점이 존재합니다.

햇서 806

3

9

 

작년 5월 즈음에 발견되어 이슈로 올라온 내용입니다.

가장 최근 업데이트에서도 보안 픽스가 적용되지 않았고 유저들이 올해 1월

취약점 CNA에 취약점 번호를 신청해 승인되었습니다.

 

권한 목록을 수정할 때 수정 항목의 username과 password를 escape처리하지 않아 생기는 취약점으로

 

해당 API를 이용하려면 그 이전에 이미 접근 권한을 필요로 하지만

이를 이용해서 NPM컨테이너나 (네이티브 환경이라면) 호스트 서버에서

임의의 shell 스크립트 실행으로 권한을 획득할 수 있고

 

NPM의 API는 권한 확인 방법으로 JWT를 사용하는데

임의로 서버단에서 로그아웃 처리가 불리한 JWT 특성상 토큰이 탈취되면(NPM의 기본 토큰 만료기간은 하루)

서버(혹은 컨테이너)가 보안에 취약한 환경에 놓이기 쉽습니다.

 

단순히 개인 사용 목적으로 NPM을 사용하는 환경에서는 큰 문제가 없을 수 있고

대부분 컨테이너로 사용하시기 때문에 현실적인 위협은 없을거라 판단합니다만,

 

입력 내용의 escape처리만 시켜주면 되는 간단한 패치만으로도 보완할 수 있는 취약점인데

이슈가 올라온 이후의 업데이트에서도 해당 내용은 고쳐지지 않는 걸 보면

NPMv3 으로 마이그레이션 하면 내부 코드는 싹 다 바뀔테니 굳이 해결할 필요가 없다고 생각하는 것 같은데
수정 활동이 활발한 Traefik같은 대체재를 알아봐야하나 싶네요

신고공유스크랩
9
1등
콜라 2023.03.07. 07:41

트래픽이 파일에서 설정하는것만 잘해줘도 쓸텐데..

트래픽은 독커 컴포즈 야믈 파일의 라벨에서 설정하는 것과 파일에서 설정하는게 연동이 안됩니다.
트래픽은 독커 라벨에서 설정한것을 바꾸려면 컨테이너 재시작이 필요하고(레이블 변경 후 dcupd 하면 재생성합니다)
파일에서 바꾸는 것은 즉시 반영 됩니다.

컨테이너가 실행되면 특정 라우터 같은게 활성화 되고
그 라우터 설정은 파일에서 하면 좋은데..
그게 안되요.

file run의 접속 도메인을 바꾸면
npm은 즉시 반영되지만
트래픽은 filerun 컨테이너가 종료 삭제 생성 실행된 후에 반영됩니다.

파일에서 라우터랑 미들웨어 설정하고
파일에서 설정한 라우터와 미들웨어를 간단하게 켜고 끄는 것만 독커 컴포즈에 넣고 싶습니다.

지금은 될지 모르겠지만, 1년 반? 2년 쯤 전엔 그게 안되서 저는 npm으로 돌아왔어요.
뭘 바꾸려고 하면 컨테이너 종료 삭제 생성 실행을 해야 합니다.

 

트래픽에서만 되는 기능을 쓸생각 없다면 npm이 압도적으로 편하다고 생각했었죠..

이 보안 이슈도 컨테이너에서는 큰 문제 안되는 것 같아보이구요.

jwt? 이거 컨테이너 지울때마다 생성되는거고..

그닥 위험한 보안 문제는 아닌듯 합니다.

저는 그 불편한 트래픽을 써가면서 이 보안 이슈를 피할 필요성이 느껴지진 않네요.

트래픽이 워낙 불편해서..

사다리 2023.03.07. 08:15
콜라
정식으로 지원되지는 않지만 컨테이너에서는 포트만 오픈하고 파일에서 그 포트로 라우팅하게 하는식으로 하면 원하는대로 되지않나 싶네요.
콜라 2023.03.07. 08:34
사다리
제가 해본것으로는 그게 최선이긴 하더라구요.
일단.. 라우터는 내가 원하는 모든 컨테이너에 대해 만들어둬야 합니다
설령 그 컨테이너가 이제는 더 이상 안쓰일지라도..
사다리 2023.03.07. 10:20
콜라
확실히 테스트 해본건 아니지만, 포트만 열려있으면 yaml이나 toml에서 수정하거나 라우팅 만들 경우 watch로 자동 인식하지 않나요?
콜라 2023.03.07. 11:17
사다리

맞아요.
그게 문제인거죠.
docker-compose.yml 수정을 가져와야 하는데.. 내부 설정 파일만 모니터링이 되요.

docker는 container 스펙을 가져오다보니 docker를 중지 삭제 생성 실행 해야 반영이 됩니다.

독커 레이블을 안쓰면 독커와 상관 없이 항상 라우터가 존재해야죠.

그럴거면 npm이죠.

 

어차피 접근 권한이 있어야 뚫릴 보안 취약점 때문에 독커를 쓰면서 굳이 쓸 이유가 없는것이죠.

스케일 아웃을 해야하는 kubernetes면 필요하겠지만요..

profile image 2등
달소 2023.03.07. 12:20
이전에 레딧에서도 문제제기가 나왔는데 따로 없데이트가 없었습니다 ㅠㅠ
관리콘솔을 내부에서만 붙게한다는 조건에서는 괜찮긴하지만 결국 CVE까지 나왔군요 그럼 패치해주겠죠...??
Trafik은 난이도가 너무...ㅠㅠ
profile image
달소 2023.03.12. 14:00
마이크로서버
caddy도 npm에 비하면,, 직관적이지 못해서 포기했습니다ㅜ

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
질문 ZFS 풀에서 계속 에러가 뜹니다 3 bass9030 13시간 전00:43 51 +1
잡담 백업 주기와 방법에 대한 고민 11 칼룬 19시간 전18:12 165 +1
질문 opensense 를 사용하여 망내의 서버를 구축하고, 외부에서 접속하는 사용자의 IP를 확인할수 있을까요? 늘맑음 23시간 전15:10 149 +1
392 잡담
normal
칼룬 19시간 전18:12 165 +1
391 잡담
normal
bong90a 1일 전10:50 308 0
390 잡담
normal
deVbug 24.04.10.10:43 229 0
389 잡담
normal
아나나나나다 24.04.08.07:18 356 +1
388 잡담
image
kmw_ 24.04.07.17:24 432 +1
387 잡담
image
kmw_ 24.04.04.14:00 736 +3
386 잡담
normal
kmw_ 24.04.01.22:17 497 0
385 잡담
image
opq! 24.04.01.14:22 272 +1
384 잡담
normal
달소 24.03.30.22:32 345 +2
383 잡담
normal
kmw_ 24.03.29.13:43 472 0
382 잡담
image
주차장 24.03.26.17:47 690 +1
381 잡담
normal
아나나나나다 24.03.21.12:58 423 0
380 잡담
image
빨간물약 24.03.20.14:09 346 0
379 잡담
image
bass9030 24.03.18.18:16 450 0
378 잡담
image
purndal 24.03.16.15:15 254 +1
377 잡담
image
purndal 24.03.15.10:49 192 +3
376 잡담
image
달소 24.03.14.22:23 218 +2
375 잡담
image
달소 24.03.11.23:27 170 0
374 잡담
image
달소 24.03.08.16:56 405 0
373 잡담
normal
달소 24.03.08.16:51 175 0