Trading Buttons

:warning: 보안 취약점 :warning:

요약: 이 플러그인을 설치하면 비활성화되어 있더라도, 해당 토픽에 존재하는 모든 토픽 커스텀 필드가 토픽에 액세스할 수 있는 모든 사용자에게, 익명 사용자를 포함하여 유출됩니다. 설치된 다른 플러그인에 따라, 토픽 커스텀 필드에 민감한 데이터가 포함될 수 있습니다.

이 플러그인을 클라이언트를 위해 검토하는 과정에서 여러 보안 문제를 발견했습니다. 우리는 포크(https://github.com/communiteq/discourse-topic-trade-buttons/tree/master)에서这些问题를 수정하고 풀 리퀘스트를 제출했습니다. 그러나 토픽 작성자가 우리의 풀 리퀘스트나 개인 메시지에 응답하지 않아, 이제 이 문제들을 공개합니다.

보안 수정: 정보 유출

모든 커스텀 필드(다른 플러그인의 필드 포함!)가 익명 사용자를 포함해 직렬화되고 있습니다. 커스텀 필드는 민감한 데이터를 포함할 수 있으며, 이러한 방식으로 직렬화되어서는 안 됩니다.

sold_at 등의 값은 어쨌든 서버 측에서 설정되고 버튼은 topic.archived에 대해 "계산"되므로, 커스텀 필드 로직은 프론트엔드 사용자 대면 코드에서 제거할 수 있으며, 커스텀 필드는 관리자 인터페이스가 작동하도록 직렬화되기만 하면 됩니다. 따라서 직렬화는 관리자 사용자로 제한할 수 있습니다. 우리는 이것이 심지어 필요하지도 않을 것으로 의심합니다.

초기화 수정

직렬화 로직을 가두고 있는 if SiteSetting.topic_trade_buttons_enabled 체크는 플러그인을 활성화하거나 비활성화한 후 Discourse를 재시작해야 하는 것을 필요로 합니다. Discourse가 이미 이를 처리하고 있으므로 이 체크는 불필요합니다.
respect_plugin_enabled: false 사용은 불필요하며, 위에서 설명한 보안 문제를 악화시킵니다.

7개의 좋아요