CVE-2026-77001 (WordPress SoClever 소셜 로그인 인증 우회) 분석
분류: CVE · 웹·서버 · 인증우회(Auth Bypass) · CVE-2026-77001 · [표준]
워드프레스 소셜 로그인 플러그인 하나가 “무인증 인증 우회” 결함으로 공개됐습니다. 문제의 로그인 처리부에는 인증·인가·논스(요청 위조 방지 토큰) 검사가 하나도 없어서, 아무 권한 없는 공격자가 그 처리부를 그대로 호출하는 것만으로 다른 사용자의 유효한 로그인 세션을 손에 넣습니다. 로그인의 UX만 붙였을 뿐, 그 로그인이 진짜인지 확인하는 문지기를 빼먹은 사례입니다.
개요
CVE-2026-77001은 “Social Login & Sharing buttons with Analytics By SoClever” 워드프레스 플러그인의 버전 1.2.0까지에 영향을 주는 무인증 인증 우회(Authentication Bypass) 취약점입니다. 공개된 설명에 따르면, 이 플러그인은 공개적으로 접근 가능한 로그인 처리부(login handler) 중 하나에서 인증·인가·논스(nonce) 검사를 전혀 수행하지 않으며, 그 결과 무인증 공격자가 임의 사용자의 유효한 세션을 획득할 수 있습니다.
- 영향 제품: Social Login & Sharing buttons with Analytics By SoClever (워드프레스 플러그인)
- 영향 버전: 1.2.0 이하(through 1.2.0)
- 취약점 클래스: 무인증 인증 우회 — 로그인 처리부의 인증·인가·논스 검사 부재
- CVSS 3.1: 9.8(CRITICAL), 벡터
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H— NVD 확정(Secondary, 출처 WPScan). - CWE: CWE-287(부적절한 인증) — NVD weaknesses 필드 확정.
- 패치 상태: 무패치(No known fix available) — WPScan advisory·NVD 둘 다 fixed 버전 없음(1.2.0까지 전부 영향). 확정.
분석 배지. 이 플러그인은 같은 시기 공개된 다른 워드프레스 소셜 로그인 플러그인들의 인증 우회 결함과 한 계열로 묶입니다. 우리 랩은 이 묶음을 이미 한 편으로 다룬 바 있습니다(아래 References·논평 참고). 발견자는 Khaled Alenazi(Nxploited), advisory 공개는 2026-08-20(WPScan), NVD 등재는 2026-08-22입니다 — NVD API·WPScan advisory 1차출처로 확증.
기술 배경 (30초)
“소셜 로그인”은 방문자가 사이트에 새 비밀번호를 만들지 않고, 구글·페이스북·트위터 같은 바깥 신원 서버(IdP, Identity Provider) 계정으로 들어오게 해 주는 편의 기능입니다. 제대로 된 흐름은 이렇습니다.
- 사용자가 “소셜 계정으로 로그인” 버튼을 누른다.
- IdP가 사용자를 인증하고, “이 사람이 맞다”는 서명된 증표(토큰/코드)를 돌려준다.
- 워드프레스 쪽 플러그인이 그 증표를 IdP에 되물어 검증하거나 서명을 검사해 진짜인지 확인한 뒤, 그제서야 해당 계정의 세션을 발급한다.
여기에 더해 워드프레스에는 요청 위조를 막는 논스(nonce) 라는 일회용 토큰 장치와, 그 요청을 보낸 사람이 그 작업을 할 자격이 있는지 보는 권한(capability) 검사가 있습니다. 즉 “누가 보냈나(인증)”, “그럴 자격이 있나(인가)”, “정상 화면에서 온 요청인가(논스)“라는 세 겹의 문지기가 로그인 처리부를 지켜야 합니다. CVE-2026-77001의 핵심은 공개 노출된 로그인 처리부 하나에서 이 세 문지기가 모두 비어 있었다는 것입니다.
CVE 분석 요약
공개된 설명을 근거로 정리하면, 문제는 특정 로그인 처리부가 바깥에서 온 요청을 아무 관문 없이 그대로 실행한다는 데 있습니다.
- 인증 검사 없음: 요청을 보낸 주체가 실제로 IdP를 통해 로그인을 마쳤는지 확인하지 않습니다. “이 로그인은 성공했다”는 주장을 서버가 그냥 받아들입니다.
- 인가 검사 없음: 그 요청이 대상 계정의 세션을 발급받을 자격이 있는지 확인하지 않습니다.
- 논스 검사 없음: 정상적인 로그인 화면·흐름을 거쳐 들어온 요청인지 확인하는 일회용 토큰이 없습니다. 그래서 처리부를 직접 호출해도 통과합니다.
세 관문이 동시에 비었기 때문에, 처리부는 넘어온 데이터만 보고 세션을 만들어 냅니다. 공개된 설명은 무인증 공격자가 이렇게 임의 사용자(관리자 포함)의 유효한 세션을 얻는다고 밝힙니다. 필요한 사전 정보는 없습니다 — NVD 공개 설명이 명시하는 바에 따르면 기본 설정에서는 계정 정보를 하나도 몰라도 사이트의 최초 관리자 계정 세션이 그대로 나옵니다(“a session as the site’s original administrator account is obtained without needing to know any account details at all”). 77000(형제 CVE)이 최소한 대상 이메일 주소는 필요로 했던 것과 달리, 이 건은 그마저도 필요 없습니다.
공통 골격을 개념 코드로 단순화하면 다음과 같습니다.
// 개념용 단순화 — 실제 소스/페이로드 아님
function public_login_handler(request):
identity = request[...] // 바깥에서 넘어온 "주장"
// (빠진 문지기) 인증: IdP 로그인이 진짜인지 검증 X
// (빠진 문지기) 인가: 이 세션을 받을 자격이 있는지 확인 X
// (빠진 문지기) 논스: 정상 흐름에서 온 요청인지 확인 X
user = resolve_user(identity)
set_session(user) // 관리자여도 그대로 세션 발급
개념용 단순화 — 실제 페이로드/원본 코드 아님. 실제 함수명·파일명·라인은 확인하지 않았습니다(⚠️미확인).
빠진 것은 화려한 방어가 아니라 “넘어온 신원을 서버가 다시 확인한다”는 한 줄과, 그 요청이 정상 흐름에서 왔는지 보는 논스 한 줄입니다. 신뢰 경계를 넘어온 입력을 검증 없이 신뢰한 전형적인 형태입니다.
공격 시나리오 · 영향도 + 대응방안
시나리오(개념). ① 무인증 공격자가 공개 노출된 로그인 처리부에 요청을 보냅니다. → ② 처리부가 인증·인가·논스 확인을 건너뛴 채 요청 데이터를 받아들입니다. → ③ 서버가 대상 계정의 세션을 발급합니다. → ④ 공격자가 그 계정의 세션을 획득합니다. 어느 단계에도 인증 관문이 없어 익명 공격자가 곧장 도달합니다. (작동하는 요청·페이로드는 싣지 않습니다.)
영향도. 확정된 범위는 무인증 상태에서 기본 설정만으로 사이트 최초 관리자 계정 세션 획득입니다(NVD 확정 사실 — 관리자 포함, 아무 계정정보 불필요). 관리자 세션이 넘어가면 워드프레스 특성상 플러그인/테마 편집을 통한 코드 실행, 콘텐츠 위·변조, 사용자 데이터 접근으로 이어질 수 있습니다(합리적으로 예상되는 후속 영향 — 분석 추정). 노출 전제는 “이 플러그인을 취약 버전(≤1.2.0)으로 설치·활성화”뿐이며, 추가 조건이 없다는 점이 이 취약점을 특히 위험하게 만듭니다.
대응방안.
- 근본 — 즉시 비활성화 또는 제거. 공개 시점 기준 공식 패치가 존재하지 않습니다(No known fix, 확정). “안전 버전으로 업데이트”는 현시점 가능한 처방이 아니며, 취약 버전을 쓰는 사이트는 해당 플러그인을 비활성화(가능하면 완전 제거) 하는 것이 유일한 근본 대응입니다. 소셜 로그인은 편의 기능이라 꺼도 서비스 본체는 유지됩니다.
- 완화(업데이트·제거가 당장 어려울 때). 취약한 로그인 처리 엔드포인트로의 접근을 웹 방화벽/서버 규칙으로 제한하고, 관리자 계정에 2단계 인증을 걸어 세션 탈취만으로 실권을 못 쥐게 방어 심도를 더합니다. 다만 임시 완화일 뿐, 근본 대응을 대체하지 않습니다.
- 탐지 관점. 소셜 로그인 처리 엔드포인트로 들어온 요청 중 정상 IdP 리다이렉트 흐름을 거치지 않은 직접 호출, 그리고 예상치 못한 신규 로그인 세션(특히 특권 계정) 을 로그에서 살핍니다. 짧은 시간에 반복되는 처리부 직접 호출도 신호입니다.
- 패치 감시. 현재 무패치이므로, 벤더 페이지·wordpress.org 플러그인 페이지·WPScan advisory에서 fixed 버전 출시 여부를 계속 확인해 나오는 즉시 적용합니다.
논평 — 왜 이 실수가 반복되나
이 결함은 우리가 최근 다룬 워드프레스 소셜 로그인 플러그인 인증 우회 3종(CVE-2026-77000·77001·77002)과 같은 계열입니다. 만든 회사도, UX도(버튼형·분석 결합형·얼굴 인식형) 제각각인데 뿌리는 하나였습니다 — 바깥 신원 서버가 정말로 로그인을 끝냈는지 서버가 확인하지 않았다는 것. CVE-2026-77001은 그 묶음에서 “문지기가 아예 없는” 극단, 즉 인증뿐 아니라 인가·논스까지 통째로 빠진 경우에 해당합니다.
“소셜 로그인”은 겉으로는 로그인 UX를 붙이는 일처럼 보이지만, 속은 신뢰 경계를 넘어온 신원 주장을 서버가 검증하는 보안 작업입니다. 편의라는 겉모습이 “검증”이라는 알맹이를 가리는 순간, 개발자는 데이터를 받아 계정을 찾는 데까지만 신경 쓰고 “이 로그인이 진짜인가”, “이 요청이 정상 흐름에서 왔나”라는 질문을 건너뜁니다. 이는 요청 위조(CSRF) 방어를 빼먹는 것, 파서 불일치로 인증을 우회하는 것과 같은 뿌리 — 서버가 바깥의 주장을 자기 손으로 다시 확인하지 않은 것 — 에서 자랍니다.
결론
한 줄 요약. 소셜 로그인은 “인증을 남에게 맡기는” 기능이지만, 맡긴 결과가 진짜인지 확인하는 책임까지 남에게 넘길 수는 없습니다. CVE-2026-77001은 그 확인을 담당할 문지기 세 겹(인증·인가·논스)을 한 처리부에서 모두 빼먹은 사례입니다.
이 한 틈은 고쳐지겠지만, 똑같은 사고방식은 다음 소셜 로그인·SSO·OAuth 연동에서 또 나타납니다 — 그래서 우리는 개별 CVE가 아니라 “바깥의 주장을 서버가 검증했는가”라는 방법을 남깁니다.
관련: 이 CVE를 포함한 3종 묶음 분석 → infiltr8 Lab, “‘로그인했다고 하니까 믿었습니다’ — 소셜 로그인 플러그인 3종의 같은 구멍”.
References / 참고자료
- NVD — CVE-2026-77001 (이 글이 재구성한 1차출처 메타). 영향 제품·버전·취약점 설명 근거. https://nvd.nist.gov/vuln/detail/CVE-2026-77001
- 공개 설명 요지: “Social Login & Sharing buttons with Analytics By SoClever” 플러그인 1.2.0 이하가 공개 노출된 로그인 처리부 하나에서 인증·인가·논스 검사를 수행하지 않아, 무인증 공격자가 임의 사용자의 유효 세션을 획득.
- WPScan(Automattic) advisory — 발견자 Khaled Alenazi(Nxploited), 공개일 2026-08-20, CVSS 3.1 9.8 (
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), 패치 상태 No known fix. https://wpscan.com/vulnerability/01c78c78-3915-44da-824a-f68074985c75/ - infiltr8 Lab, “‘로그인했다고 하니까 믿었습니다’ — 소셜 로그인 플러그인 3종의 같은 구멍” (CVE-2026-77000·77001·77002 묶음) — 같은 계열의 인증 우회를 다룬 우리 글.
이 글은 위 1차출처(NVD·WPScan advisory)를 우리 관점에서 다시 쓰고 논평을 더한 것입니다. 특정 문장·코드를 그대로 옮기지 않았으며, 작동하는 익스플로잇/페이로드는 싣지 않았습니다. 코드 예시는 개념 설명용입니다. 이 초안은 RN-11 독립 팩트체크(NVD API + WPScan advisory 직접 대조, 2026-08-31)를 통과했습니다.