Discourse 취약점 CVE-2021-41163

여러분 안녕하세요,

최근 Discourse의 보안 취약점에 대해 알게 되었습니다. NVD - CVE-2021-41163 (nist.gov)

해당 취약점이 /webhooks/aws URL에 있는 것이 궁금해서 여쭤봅니다. Azure에서 Discourse를 사용하는 경우에도 이 취약점의 영향을 받을까요?

패치가 적용되지 않은 경우, 호스팅 위치와 관계없이 모든 인스턴스가 영향을 받습니다.

안녕하세요 @Falco, 빠른 답변 감사합니다!

저는 Ruby 전문가가 아니지만, 이 코드 라인이 Azure에서 취약한 부분이 실행되는 것을 방지할 것이라 생각했습니다. false로 평가되니까요?? 저는 Ruby를 잘 모르기 때문에 여기서 제 오해를 바로잡아 주시면 좋겠습니다.

또한, 이는 완전한 임시 조치이며, 업그레이드가 100% 최선의 해결책이므로 권장하지 않습니다. 업그레이드할 때까지 이를 임시로 해결하기 위해 nginx 파일을 수정할 수 있을까요?
아래와 같이요:

  1. 머신에 ssh 접속
  2. cd /var/discourse
  3. ./launcher enter app
  4. cd /etc/nginx/conf.d/
  5. discourse.conf 편집
  6. 다음 내용 추가:
location ~* /webhooks/aws {
    deny all;
}
  1. sv restart nginx

저는 업그레이드할 의향이 있으며, 조만간 진행할 것입니다. 하지만 라이브 환경을 위해 준비를 하려면 약 1주일이 필요할 것 같고, 그 사이에 보안이 유지되기를 바랍니다.

그 파라미터는 사용자 입력이므로 그 라인은 어쨌든 실행됩니다.

그렇게 하면 작동할 수 있지만, 말씀하신 대로 임시 조치에 불과합니다. 다시 빌드하면 이 수정 사항이 사라지며, nginx 설정은 올바르게 구성하는 것이 매우 까다로워 테스트할 때 매우 주의해야 합니다.

우리 보안 팀의 분석에 따르면, 이는 Discourse의 버그가 아닙니다. 이 버그는 SNS 메시지 배포 시스템(MDS)에 있으며(여기서 자세한 내용을 밝힐 수는 없습니다), 이는 SNS 서비스를 사용하는 모든 패키지에 영향을 미치기 때문입니다.

네, 문제는 실제로 aws-sdk-sns gem의 업스트림 이슈로 인해 발생한 것입니다. 하지만 중요한 점은 Discourse가 이 gem을 사용하고 있으며, 이로 인해 버그가 외부에 노출되므로 AWS SNS 서비스를 실제로 사용하지 않는 경우에도 모든 Discourse 인스턴스가 취약점에 노출된다는 것입니다.

따라서 이것이 "Discourse의 버그"는 아니지만, "Discourse의 보안 취약점"인 것은 맞습니다.

이 취약점이 수정되었나요? 감사합니다.

네, 하지만 패치를 적용했는지 확인해야 합니다. 해당 주제를 읽어보세요. :slight_smile:

단순한

런처 재구축 앱

이 이 취약점을 수정하는 데 도움이 되지 않을까요?

./launcher rebuild app를 실행하면 Discourse 인스턴스에 최신 업데이트가 적용되며, 이 문제에 대한 패치도 포함됩니다 :+1:

공식 정보는 https://github.com/discourse/discourse/security/advisories/GHSA-jcjx-pvpc-qgwq에서 확인할 수 있습니다.

훨씬 더 그럴듯하네요 :slight_smile: