6호 · 2026년 10월 16일 · 5건
링크 하나로 Telegram 계정 탈취, 광고가 스파이웨어를 배달, 패스키 논쟁, 그리고 윤초의 끝
Telegram Desktop이 링크 한 번 클릭으로 세션 파일을 빼앗기는 취약점을 공지 없이 고쳤고, Citizen Lab은 광고 타겟팅 인프라가 그대로 스파이웨어 표적 선정에 쓰인 AdFection 작전을 공개했습니다. '패스키는 함정'이라는 글과 그 반박이 오갔는데 남는 쟁점은 어테스테이션 하나입니다. Go 1.27은 읽지 않은 HTTP/1 본문을 알아서 비워 연결을 재사용하고, 국제도량형총회는 2027년 5월 20일부로 윤초를 사실상 끝냈습니다.
- 01
Telegram Desktop 원클릭 계정 탈취 — 링크 하나로 세션 파일을 빼간다, 조용히 고쳐졌다
Telegram Desktop 7.2.8 이하에서 링크 한 번 클릭으로 로컬 파일을 읽어 공격자 채팅방으로 보내고 세션을 탈취할 수 있는 취약점이 공개됐습니다. CVE-2026-107181, CVSS 8.1입니다. 단일 인스턴스 IPC 소켓이 세미콜론을 이스케이프하지 않아 tg:// 링크로 내부 명령을 주입하고, 내부 전용 interpret: 스킴으로 tdata의 세션 키 파일을 전송하게 만드는 구조입니다. ZDI를 통해 6월 25일 제보됐고, Telegram은 9월 17일 7.2.9에서 보안 공지 없이 고쳤습니다.
왜 중요한가: Telegram을 업무 연락에 쓰는 팀이 적지 않습니다. 변경 로그에 '렌더링 수정'만 적혀 있어 업데이트를 미룬 사람이 많을 수 있습니다. 7.2.9 이상인지 확인하세요.
- 02
광고 타겟팅이 스파이웨어 배달 경로가 됐다 — Citizen Lab의 AdFection 보고서
Citizen Lab이 이스라엘 광고기술 회사 Discover-Tech의 플랫폼 Controlium이 특정 개인에게 광고를 보여주는 기능으로 Candiru 스파이웨어를 배달했다고 보고했습니다. 광고가 렌더링될 때 서버에 식별자를 보내고, 대상이면 악성 JavaScript를, 아니면 0바이트를 돌려주는 구조라 클릭이 필요 없습니다. Al Jazeera 기기 최소 45대가 표적이 됐고, 2026년 3~6월 입찰 데이터 기준 스크립트가 든 광고가 앱 75,373개와 웹사이트 120,768개에 노출됐습니다. Google은 광고 거래소 접근을 끊었고 IAB Europe, Beeswax, Eskimi도 제거·차단했습니다. 사용된 브라우저 취약점은 특정되지 않았습니다.
왜 중요한가: 광고 SDK를 넣은 앱, 광고 태그를 붙인 사이트는 모두 이 경로의 통로가 될 수 있습니다. 자기 서비스가 아니라 자기 서비스에 실린 광고가 공격 매체라는 점이 새롭습니다.
- 03
"패스키는 함정이다" vs "아니다" — 논쟁의 실제 쟁점은 어테스테이션 하나
10월 10일 Substack 글 하나가 패스키를 쓰지 말라고 주장해 퍼졌습니다. 벤더 종속, 복사 불가, 사이트가 승인된 관리자만 허용하는 원격 증명(attestation)으로 사용자를 통제할 수 있다는 논지이고, 대안으로 TOTP와 YubiKey를 권합니다. Scott Helme가 14일 반박했습니다. 동기화 패스키는 어테스테이션을 아예 반환하지 않고, 어테스테이션은 인증기 모델만 알려줄 뿐 OS·브라우저를 드러내지 않으며, YubiKey야말로 어테스테이션을 하고, TOTP는 실시간 피싱에 뚫린다는 것입니다. 두 글 모두 패스키가 피싱에 강하다는 점은 인정합니다.
왜 중요한가: 패스키 도입을 검토하는 서비스가 늘고 있습니다. 이 논쟁에서 실무에 남는 건 하나입니다 — 소비자 로그인에 어테스테이션을 요구하지 말 것.
- 04
Go 1.27 — 읽지 않은 HTTP/1 응답 본문을 Transport가 알아서 비운다, 100회 요청이 710ms에서 150ms로
Go 1.27부터 http.Transport가 읽지 않은 HTTP/1 응답 본문을 비동기로 드레인해 연결을 재사용합니다. 한도는 50ms 또는 256KB이고, Connection: close 응답은 드레인하지 않습니다. 1.26까지는 본문을 읽지 않고 Close하면 연결을 버리고 새로 맺었습니다. 상태 코드만 확인하는 코드, json.Decoder가 끝의 개행을 남기는 코드가 모두 해당됐습니다. 저자 측정으로 HTTP/1 강제 상태에서 100회 요청이 약 710ms에서 150ms로 줄었습니다. 이제 io.Copy(io.Discard, body) 같은 수동 드레인은 필요 없고, 이 동작은 향후 바뀔 수 있다고 밝혔습니다.
왜 중요한가: Go로 HTTP 클라이언트를 쓰는 거의 모든 코드에 해당합니다. 수동 드레인 헬퍼를 둔 팀은 1.27에서 지울 수 있고, 안 둔 팀은 공짜로 빨라집니다.
- 05
윤초가 끝난다 — 2027년 5월 20일부터 연속 UTC, UT1과의 허용 차이는 1시간
제28차 국제도량형총회(CGPM)가 결의 5로 2027년 5월 20일부터 '연속 UTC'를 시행하기로 했습니다. |UT1−UTC| 허용 상한을 지금의 0.9초에서 3,600초로 올리는 방식이라 수세기 동안 윤초를 넣을 일이 없어집니다. 근거로 든 것은 지구 자전 가속으로 2035년까지 음의 윤초가 올 확률 30%, 음의 윤초 대비 비용이 Y2K급이라는 평가, 서비스마다 윤초를 다르게 처리해 생기는 시간 불일치입니다. ITU 무선 전송 코드는 2035년, 늦어도 2040년까지 전환 기간이 있습니다.
왜 중요한가: 2012년과 2017년 윤초 때 Linux 커널 패닉, Reddit·Cloudflare 장애가 났습니다. 그 종류의 사고가 2027년 5월 이후 구조적으로 사라집니다. 그 전까지 윤초 처리 코드는 그대로 둬야 합니다.