New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.7.13 용, Magic Hash 취약점으로 인한 무단 로그인 방지 #1472

Closed
ibin79 opened this Issue May 13, 2015 · 9 comments

Comments

Projects
None yet
4 participants
@ibin79
Copy link
Contributor

ibin79 commented May 13, 2015

취약점 안내) https://blog.whitehatsec.com/magic-hashes/

1.8 버전에 관한 내용은 PR #1471 에 올렸습니다.
1.7 용 코드는 아래에 올려두었으니, 확인해보시고 직접 수정하시면 됩니다.

ibin79/xe-core@b8886fd

위 취약점은 1.8 에서는 발생할 확률이 매우 낮지만,
XE 1.7 버전에서는 비밀번호를 md5 로 해시하고 있으므로, 발생할 확률이 보다 높을 것으로 예상됩니다.

@bnu

This comment has been minimized.

Copy link
Member

bnu commented May 13, 2015

해당 코드는 mysql 구버전의 password()에 관한 부분이긴 하지만 처리하겠습니다.
감사합니다. :)

@bnu bnu closed this May 13, 2015

@bnu

This comment has been minimized.

Copy link
Member

bnu commented May 13, 2015

fixed #1471

@ibin79

This comment has been minimized.

Copy link
Contributor

ibin79 commented May 13, 2015

현재 머지하신 #1471 RP는 1.8 버전용으로 해결완료가 맞습니다만...

본 이슈는 1.7 버전용으로 mysql 구버전의 password()와 무관하고,
md5() 해시 결과를 동등 연산(==)으로 비교하여 발생하는 취약점입니다.

1.7 버전에서는 위 취약점에 언급된 해시 패턴(0e로 시작하고 나머진 숫자로 구성)일 경우,
Magic Hash 에 해당하는 비밀번호로 아무나 로그인할 수 있는 상황입니다.
즉 1.7 용 보안 패치 제작이 필요합니다.

@ForPeople

This comment has been minimized.

Copy link
Contributor

ForPeople commented May 13, 2015

@ibin79
음... 그럼 1.4 버전용 1.5 버전용 패치도 각각 다 배포 해야 하나요?
1.7용 패치라는게 이상합니다.
그냥 1.8x로 업데이트 하면 될 것 같습니다.

@ibin79

This comment has been minimized.

Copy link
Contributor

ibin79 commented May 13, 2015

1.7 패치 제작이 어렵더라도...

1.8 이 배포된 지 1개월 조금 지나 1.7 사용자가 많은 점과
'다른 비밀번호로 로그인이 가능해지는 심각한 문제(특정 사용자에 한하지만...)'임을 감안하면,
1.8 로 업그레이드 하지 않으면 이런 취약점이 있다는 공지 정도는 고려해야 하지 않나 생각됩니다.

@bjrambo

This comment has been minimized.

Copy link
Contributor

bjrambo commented May 13, 2015

@ibin79 코어 배포시 약간의 수정과 함게, 패치된 내용의 대한 보안패치내역을 모두 공개하고 작성하고 배포합니다. 그리고 그 이슈의 링크까지 제공하여 어떤점이 바뀐건지 어떤 의견이 오갔는지 볼 수 있습니다..
그렇게까지 제공했는데 또 공지로 제공한다는건 좀..
아에 안일하게 생각하고 안본 유저들의 잘못이죠..

@ibin79

This comment has been minimized.

Copy link
Contributor

ibin79 commented May 13, 2015

@qw5414 말씀하신 내용은 1.8 버전대의 공식 배포에 관한 내용이고,
본 이슈는 제목에서도 언급했듯이 1.7.13 버전의 패치에 관한 내용입니다.

1.7 버전의 패치나 공지 여부는 XE 개발팀에서 결정하는 것이지만,
사안의 중대성을 감안해 한번 고민해볼 필요는 있다고 판단되어 이슈로 작성한 것 입니다.

그런데 @bnu 님이 1.8 용 패치와 본 이슈(1.7.13 용)를 동일 건으로 잘못 판단하셔서, 댓글을 다시 달았습니다.

참고) 1.7 버전에서 취약점 재현은 http://www.php79.com/389 글을 참고하시면 됩니다.

@bjrambo

This comment has been minimized.

Copy link
Contributor

bjrambo commented May 13, 2015

@ibin79 어떤 말씀을 전달하시려는지 잘 알고 있습니다.

그런데 1.7버전과 1.8 버전을 1.5-> 1.7 버전대로 업글된 것처럼 완전히 다른 업글버전으로 나온다고 생각하고 계실지 모르겠지만, 1.7버전-> 1.8버전은 단지 XE1.7.3 -> XE1.7.4 버전대로 업데이트 된것과 비슷한 패치내역을 가집니다.

기존에는 1.4-> 1.5 바뀔때마다 엉청나게 바뀐 메이저 패치처럼 느껴진 부분이 있었더라면 1.7.4 버전 이상에서는 그 방식을 완전히 제외한거죠...

그래서, xe1.7.13 -> xe1.8 버전은 기존대로 한다면 xe1.5.1.XX -> xe1.5.2 버전 업뎃과도 비슷한 패치인 것으로 파악하시면 되겠습니다.

그렇기 때문에 1.7.X 버전의 사용자들에게 버그를 패치하라 보안하라.. 이런내용을 알려줄 수 있는 여건이 마련이 안되는거죠.. 사실 보안 걱정되면 최신버전으로 업데이트를 권유하니깐요..

왜 1.7버전대에서 머무르시는지는 모르겠지만, 그만한 이유가 있으리라고 판단됩니다. 다만, 기존 버전유저들에게 아무리 취약한 버그가 있다 하더라도.. 버전업데이트가 이루어진 (1.7->1.8) 버전의 대해서 1.7에 대한 버그 패치를 지원하지 않아도 된다고 판단됩니다.

다만 해당 부분의 보안의 아주 결함이 있으니 최신버전으로 업데이트 하라는 정도의 알림은 제공할 수 있겠지요.

@ibin79

This comment has been minimized.

Copy link
Contributor

ibin79 commented May 14, 2015

@qw5414 우선 제 사이트는 ibin79/xe-core@b8886fd 패치를 적용해서 해결해둔 상태입니다.
단순히 4줄만 '=='를 '==='로 수정하면 되니깐요. :)

이런 유형의 취약점은 100% 공격당하는 문제가 아닌 확률 상의 문제이기 때문에, 특정 사이트를 타겟으로 한 보조 공격 수단으로 활용되고, 정상적인 로그인 절차이므로 관리자가 인지하지 못 할 가능성이 매우 크고, 각종 보안 장비가 무용지물이 됩니다. 즉 공격이 발생하더라도 발생 여부와 원인을 추적하기 어려운 잠재적인 보안 위협이 됩니다.

따라서 여러가지 이유로 구버전을 사용하는 분들이 많은 점을 감안하면, 별도 패치를 제공하지 않더라도 ibin79/xe-core@b8886fd 형태로 수정하면 된다 정도의 안내만 하더라도 개별적인 예방 조치가 가능하리라 판단됩니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment