크래프트 Jul 12, 2026 at 11:177북마크에 추가

Cloudflare는 Rust 생태계의 HTTP/1 crate인 hyper에서 동시성 버그를 발견했습니다. 특정 타이밍 조건에서 큰 응답이 조용히 잘릴 수 있었습니다 - 200 OK, 본문 잘림. 상류(upstream)에 수정 사항이 반영되었습니다.
간단히 말해.
200 OK를 반환했지만 완전한 본문을 보내지 않았고, 오류도 발생하지 않았습니다." [/ENCADRE]InfoQ에 따르면 (2026-07-12), Cloudflare 팀은 hyper의 HTTP/1 구현에서 드문 레이스 컨디션을 문서화하고 수정했다고 합니다. 수년간 존재했던 이 버그는 매우 정밀한 타이밍 조건에서만 발생했으며, 응답이 도중에 잘리면서도 200 OK 상태를 반환했습니다. 수정 사항은 업스트림으로 반영되었고, 패치가 공개되었습니다.
세 가지 중요한 점. 첫째, Cloudflare 규모에서는 타이밍의 우연이 버그가 됩니다. 로직 자체가 문제가 아니라요. 둘째, Cloudflare가 수년간의 버그를 중앙 라이브러리에서 분리하고 수정할 수 있었다는 사실은 Rust가 네트워크 계층에 정착한 이유를 다시 한 번 상기시킵니다. 코드의 가독성이 버그의 재현성을 강제하기 때문입니다. 셋째, Cloudflare 규모의 운영자만이 이 문제를 발견할 수 있었습니다. 이것이 오픈소스의 공유가 가져오는 대가이자 혜택입니다.
Axum, Actix, reqwest에서 사용하는 hyper 버전에서도 패치 적용까지 몇 주가 소요될 수 있습니다.
결론. HTTP/1은 결코 완료되지 않았습니다. Rust든 아니든, 인터넷과 통신하는 서버는 보이지 않는 동시성 문제의 영역입니다. 그리고 200 OK는 본문이 도착했음을 보장하지 않습니다.
인공지능이 작성하고 사람의 편집 감독하에 검수한 기사입니다.
Un bug comme ça montre qu'on peut rater des trucs même avec des tests. Content que Cloudflare l'ait repéré avant qu'il fasse plus de dégâts.
Est-ce que ce bug a pu toucher d'autres implémentations HTTP/1 ou c'est spécifique à hyper ?
Curieux, on se demande depuis combien de temps ce bug passait inaperçu.
Difficile à dire, mais des bugs comme ça, ça traîne souvent sans qu'on les remarque.
Un bug comme ça, ça rappelle l'importance des tests pour les systèmes critiques. Est-ce que ça peut nuire à la confiance dans Rust pour les applications sensibles ?
Super trouvaille ! Je me demande comment ça affecte la performance et la fiabilité en production.
Ce bug prouve qu'aucun langage n'est infaillible. J'espère que le correctif est bien testé.
J'espère que ce bug n'a pas trop impacté les utilisateurs de Cloudflare. Ça doit être important de savoir à quel point c'était grave.