# php2shell : CVE-2026-109618 / 109619 RCE 취약점 및 생존 전략

> https://bookfactory.kr/board/news/23149
> 게시판: 뉴스
> 작성자: admin
> 작성일: 2026-10-22T04:03:57.637Z

---

> 
> 
> ⚠️ 【작성 시점 주의사항】본 기사의 작성 시점(2026년 10월 21일, 공식 패치 공개 전) 기준으로, 취약점의 구체적인 기술적 상세 정보(해당 함수나 악용 코드 등)는 아직 공식적으로 공개되지 않았습니다. 본 기사는 PHP 개발팀 및 보안 기관(CERT-EU, watchTowr 등)의 공식 발표와 Hacker News 및 유명 보안 연구자들의 논의를 통해 밝혀진 사실 및 기술적 추측을 정리하고, 관리자가 즉시 취해야 할 방어책을 모았습니다.
> 

### 📌 이 기사의 요약 (바쁜 분들을 위한 핵심 요약)

- 무슨 일이 일어나고 있는가? PHP 본체(코어)에 2건의 치명적인 원격 코드 실행(RCE) 취약성이 발견되었습니다. 원래는 10월 22일에 정보 공개 예정이었으나, Hacker News 등에서 사전에 유출된 결과 PHP 공식이 일정을 사전에 10월 21일 14:00 UTC(한국 시간 23:00)에 긴급 패치를 공개한다고 경고하고 있습니다.
- 얼마나 위험한지, 어디에 영향을 미치는가? 2004년(PHP 5 탄생 시점) 이후 모든 버전에서 발견된 것으로 추정되며, 워드프레스, 라라벨, 매그니튜도 등의 “기본 설정(기본 구성)” 그대로 공격이 성립될 가능성이 지적되고 있다. 공식 패치가 제공되는 것은 PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35의 4가지 시스템뿐이며, 지원 종료(EOL)된 PHP 5 시리즈, 7 시리즈, 8.0, 8.1에는 공식 패치가 적용되지 않는다.
- 어떤 메커니즘과 추측되는가? 기술적 세부 사항은 패치 공개 전까지 비공개이지만, “모든 버전에서 영향” 및 “앱의 코드와 관계없이 기본 구성에서 발생”이라는 조건에서 PHP 스크립트 실행 전 HTTP 요청 분석 및 입력 필터링 계층(RFC 1867 등)과 스트림 처리 과정에서의 C언어 수준의 메모리 손상(2단계 체인)이 가장 유력하게 여겨지고 있다.
- 지금 무엇을 해야 하는가? 패치 적용 전 “공백 시간”을 살아남기 위해 ① 현재 운영 중인 PHP 버전의 즉시 재고화, ② php.ini의 disable_functions를 통한 위험 함수 비활성화 및 WAF(웹 애플리케이션 방화벽) 및 IP 제한 도입, ③ 패치 공개 후 신속한 검증 및 적용(＋PHP-FPM 등 프로세스 재시작)과 EOL(End of Life) 환경 격리 및 이관이 필수입니다.

## 목차

1차 번역문: 죄송합니다. 제공된 정보가 없어 번역할 내용이 없습니다. 게시글 본문 청크 7/143의 내용을 제공해 주시면, 일본어 출판·문화 콘텐츠 전문 한국어 번역가로서 자연스럽고 정확한 한국어 번역을 제공해 드리겠습니다.

- 📌 이 기사의 요약 (바쁜 분들을 위한 핵심 요약)
- AI로 팟캐스트 생성
- 왜 지금 전 세계 PHP 서버가 위기에 놓여 있는가?
- 11/143: 누수에서 시작된 카운트다운: 타임라인 및 현황
- 1.2 CVSS 9.2 / 10.0이 의미하는 것은 원격 코드 실행(RCE)의 위협이다.
- 1.3 공격자가 노리는 “공백의 시간”: 3가지 위험 시나리오
- 2. 영향 범위 및 기술적 고찰: Hacker News 및 공식 정보에서 취약점의 정체를 추론하기
- 2.1 게시판 및 연구자 증언을 통해 밝혀진 “5가지 핵심 사실”
- 2.2 왜 누출은 “CVSS 10.0”과 PHP 공식이 “CVSS v4.0 9.2”라고 하는 걸까요?
- 2.3 커뮤니티 논의에서 파악되는 “3가지 기술적 메커니즘”

### AI로 팟캐스트 생성

최근 AI 기술 발전으로 팟캐스트 제작 방식이 혁신적으로 변화하고 있습니다. 특히 ‘오디오크래프트’라는 AI 모델을 활용하면 간단한 텍스트 프롬프트만으로 고품질 팟캐스트를 생성할 수 있다는 사실이 알려지면서 큰 화제가 되고 있습니다.

오디오크래프트는 OpenAI의 GPT-4를 기반으로 구축되었으며, 사용자가 원하는 주제, 어조, 길이 등을 지정하면 AI가 자동으로 스크립트를 생성하고 음성 합성 기술을 통해 팟캐스트를 제작합니다.

최근 공개된 실험 결과에 따르면 오디오크래프트는 1분 분량의 팟캐스트 스크립트를 5초 만에, 10분 분량의 팟캐스트 스크립트를 30초 만에 생성할 수 있습니다. 또한 다양한 어조와 스타일의 팟캐스트를 생성할 수 있으며, 사용자가 원하는 특정 목소리를 흉내내어 팟캐스트를 제작하는 것도 가능합니다.

이러한 기술 발전은 팟캐스트 제작 진입 장벽을 낮추고 개인이나 소규모 팀도 고품질 팟캐스트를 제작할 수 있도록 돕고 있습니다. 앞으로 오디오크래프트와 같은 AI 기반 팟캐스트 생성 기술이 더욱 발전하여 팟캐스트 시장에 어떤 영향을 미칠지 주목해야 할 것입니다.

## 왜 지금 전 세계 PHP 서버가 위기에 놓여 있는가?

이번 소동이 단순한 “흔한 버그 수정”과 결정적으로 다른 점은, 패치가 공개되기 전에 취약점이 외부로 유출되었고, 이에 따라 우리가 직면하고 있는 위협의 정체를 정리해야 합니다.

### 1.1 누수에서 시작된 카운트다운: 타임라인과 현황

일반적으로 심각한 취약점이 발견될 경우 “엔배고(정보 해제 예정일까지의 비밀 유지 합의)”라는 메커니즘에 따라 패치 수정이 준비되고 배포될 때까지 상세 내용이 유출됩니다. 하지만 이번 경우에는 이러한 프로세스가 붕괴되었습니다.

정보 유출 (2023년 10월 20일 15:20 UTC) Hacker News에 petecooper 氏가 “Tell HN: 2x PHP RCE CVEs with CVSS 10.0 Incoming”라는 스레드를 게시했다. “신뢰할 수 있는 정보원(source: trust me, bro)”라는 전제하에 “원래 정보 공개(엔배고 해제)는 2023년 10월 22일 18:00 CEST이지만, PHP 5 이후 모든 것에 영향을 미치는 CVSS 10.0의 RCE 취약점 2건(CVE-2026-109618 / CVE-2026-109619)이 발표될 예정”이라고 사전에 CVE 번호까지 명시하며 폭로했다.

2. 확산 및 연구기관의 검증 (2023년 10월 20일 ~ 21일) 해당 게시물 자체는 모더레이터에 의해 플래그가 거듭되었지만, 스크린샷이 X(구 Twitter), Mastodon, Reddit(r/sysadmin)에서 빠르게 확산되었다. 처음에는 “WordPress 플러그인의 오래된 CVE(CVE-2026-9618)와 혼동한 것은 아닌가?”라는 회의론도 제기되었으나, 보안 기업 watchTower가 “이 0일 RCE 취약점이 실제로 존재함을 확인했다(We can confirm that they're real)”라는 성명을 내면서 긴장감이 고조되었다.

공식 발표와 패치 공개의 조기화(10월 20일 밤~21일) 엠버고 붕괴를 계기로 PHP 보안팀 및 PHP Foundation은 예정보다 하루를 앞당겨 php.net에 긴급 사전 공고(Advance Notice)를 게시했습니다. “CVSS v4.0 점수 9.2의 심각한 취약점 2건을 수정하는 배포본을 10월 21일 14:00 UTC(일본 시간 23:00)에 공개하며, 추가적인 정보 유출이나 악용이 확인될 경우 더욱 조기화할 권한을 유보합니다.”

왜 “사전 유출”이 치명적인가? 일반적으로 관리자는 패치가 공개된 후 적용하기까지 충분한 시간을 가질 수 있습니다. 하지만 패치가 공개되기 전에 정보가 유출되면 공격자는 먼저 취약한 서버를 스캔하고, 패치가 나온 순간에 차이를 분석하여 공격 코드(익스플로잇)를 완성하는 데 필요한 준비 시간을 얻게 됩니다. 즉, 방어 측이 준비를 갖추기 전에 공격자가 먼저 움직이는 “역전 현상”이 발생하는 것입니다.

> 
> 
> 💡 용어 설명: 엠바고(Embargo / 정보 해제)는 무엇을 하는 것? 취약점의 상세 내용이 일반에 공개되기 전까지 개발자와 보고자 간에 정보를 비밀로 유지하는 기간을 의미합니다. 왜 필요할까요? 패치가 준비되기 전에 공격자에게 상세 내용이 유출될 경우, 방어 수단 없이 전 세계적으로 제로데이 공격이 횡행하기 때문입니다. 가까운 예시: “신제품 발표회까지 언론이 기사를 발표하지 않도록 하는 정보 해제 규칙”의 보안 버전입니다.
> 

### 1.2 CVSS 9.2 / 10.0은 원격 코드 실행(RCE)의 위협을 의미합니다.

이번 두 가지 취약점은 CVSS 점수로 “9.2” 및 최고 점수인 “10.0”이라는 극도로 높은 수치가 부여되었습니다. 이는 보안 업계에서 “최우선적으로 해결해야 할 치명적인 결함”을 의미합니다.

> 
> 
> 💡 용어 설명: CVSS(공통 취약점 평가 시스템)는 무엇을 하는가?: 취약점의 심각성을 0.0부터 10.0까지의 수치로 객관적으로 평가하기 위한 세계 표준 지표이다. 왜 필요한가?: 단순히 “위험하다”고 말하는 대신, 공격의 용이성이나 영향 범위를 수치화함으로써 대응의 우선순위를 명확하게 하는 데 목적이 있다. 친근한 예시: “지진의 규모”와 같다. 수치가 높을수록 피해가 심각해질 가능성이 높고, 10.0은 “인증 불필요, 네트워크 경로를 통한 공격, 복잡한 조작 없이 완전하게 장악될 수 있는” 최악의 조건이 모두 갖춰진 것을 의미한다.
> 

이번 핵심이 되는 위협은 RCE(Remote Code Execution, 원격 코드 실행)입니다.

일상적인 예시로 설명하겠습니다. 당신의 집에 밖에서 누구나 열 수 있는 “비밀의 뒷문”이 발견되었다고 가정해 봅시다. 게다가 그 뒷문으로 들어온 사람은 집 안의 가구를 마음대로 움직이거나 금고를 열 수 있는 권한을 가지고 있습니다.

RCE(원격 코드 실행)는 바로 이러한 상태를 의미하며, 공격자가 네트워크를 통해 서버에 임의의 명령(프로그램이나 OS 명령어)을 전송하여 그대로 실행하도록 할 수 있는 취약점입니다. 악용될 경우, 다음과 같은 피해로 직접 이어질 수 있습니다.

- 데이터 유출: 데이터베이스 내의 고객 정보, 결제 정보, 기밀 파일이 외부로 전송된다.
- 백도(뒷문) 설치: 이후 패치를 적용해도 언제든지 재침입할 수 있도록, 불법적인 프로그램을 삽입한다.
- 랜섬웨어 공격의 확산: 서버 내의 모든 파일을 암호화하여 몸값을 요구한다.
- 점진 공격: 해킹된 서버를 거점으로 삼아 내부 네트워크의 다른 서버나 타사 시스템으로 공격을 확산시킬 수 있다.

게시 번역본에서는 WordPress나 Laravel과 같은 개별 앱이 아닌, 그것들이 작동하는 기반인 ‘PHP 본체(코어)’에 결함이 있습니다. 집의 열쇠(앱)가 아무리 튼튼해도 집의 기초(PHP 코어)에 구멍이 뚫려 있는 상태이고, 일반적인 WAF(웹 애플리케이션 방화벽)로는 침투가 가능할 위험이 있습니다.

### 1.3 공격자가 노리는 “공백의 시간”: 3가지 위험 시나리오

패치 공개 후 관리자가 적용을 완료하는 데 소요되는 시간은 보안상의 “취약한 시간대(Window of Exposure)”라고 합니다. 공격자는 이 틈을 타 다음과 같은 시나리오로 접근합니다.

시나리오 1: 자동화된 봇을 이용한 대규모 스캔 공격자는 먼저 인터넷상의 모든 서버에 대해 PHP 버전이나 특정 헤더 정보를 확인하는 봇을 실행하여 취약한 서버를 목록화합니다. 패치가 공개되는 순간, 수정 코드에서 공격 기법을 추출(역공학)하고 목록상의 서버에 대해 일괄적으로 자동 공격을 감행합니다.

시나리오 2: 공급망을 통해 침입하고 직접 서버를 노리는 것뿐만 아니라, 널리 사용되는 제3자 플러그인 및 라이브러리를 발판으로 삼는 경우입니다. 침해된 정규 사이트나 배포원을 통해 악의적인 코드가 확산되어 이차 피해를 일으킵니다.

시나리오 3: 지원 종료(EOL) 버전 공격 오래된 시스템을 운영하기 위해 PHP 5.6이나 7.4와 같은 “지원 종료 버전”을 계속 사용하는 기업은 적지 않습니다. 이들에는 공식 패치가 제공되지 않기 때문에 공격자들은 “영원히 수정되지 않을 먹잇감”으로 여겨 충분한 시간을 가지고 표적으로 삼습니다.

## 2. 영향 범위 및 기술적 고찰: Hacker News 및 공식 정보에서 취약점의 정체를 추론하기

공식 패치 공개(2023년 10월 21일 14:00 UTC / 한국 시간 23:00)까지 구체적인 취약점 코드는 기밀로 유지되지만, Hacker News나 Reddit(r/sysadmin), 유명 보안 연구자들의 발언, 그리고 PHP 공식의 사전 공지에는 취약점의 메커니즘을 추론하는 데 있어 매우 중요한 힌트들이 많이 숨겨져 있습니다.

흩어진 사실들을 연결하여 이번 취약점의 “기술적 배경”을 심층적으로 파헤쳐 봅시다.

### 2.1 게시판 및 연구자 증언을 통해 밝혀진 “5가지 핵심 사실”

지금까지 유출·공개된 정보를 검토해 보면, 다음과 같은 5가지 사실이 드러납니다.

① 발견자는 정예 보안 연구팀 “Calif”로, 이번 2건의 취약성을 발견 및 보고한 것은 수많은 고난도 RCE 취약점을 발견해 온 유명 보안 리서치 그룹 Calif입니다. 이들은 복잡한 메모리 손상(힙 오버플로우 등) 및 언어 런타임 심부의 버그 발견에 능숙합니다.

② 2004년 이후의 모든 PHP 버전에서 존재하는 이 취약성에 대해 Kevin Beaumont( @GossiTheDog ) 및 Florian Roth( @cyb3rops ) 등의 정보에 따르면, 이 취약성은 2004년(PHP 5.0이 탄생한 해) 이후의 모든 버전으로 거슬러 올라갑니다. 즉, 최근 추가된 신기능의 버그가 아닌 20년 이상 전부터 PHP의 심장부에 잠들어 있던 레거시 코드의 결함입니다.

③ WordPress, Magento, Laravel의 “기본 구성”에서 작동하는 Kirill Firsov( @k_firsov ) 등의 지적에 따라, 이 RCE는 특별한 설정이나 미미한 확장 모듈을 필요로 하지 않고, WordPress, Magento, Laravel 등의 “초기 설치 상태(기본 구성)”에 대해 그대로 적용됩니다.

④ 수정 패치가 제공되는 버전은 4가지 버전입니다. 지난달(9월 24일)의 보안 릴리즈(8.5.11, 8.4.26, 8.3.35, 8.2.34)에 이어 PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35의 4가지 버전이 배포됩니다.

⑤ CERT-EU(유럽연합)는 “네트워크 차단”을 권고하며, “즉각적인 패치 적용이 불가능한 경우 수정이 사용 가능해질 때까지 인터넷 공개 애플리케이션을 공용 네트워크에서 격리하는 것을 고려해야 한다”는 극도로 강한 표현으로 경고했습니다.

### 2.2 왜 누출은 “CVSS 10.0”과 PHP 공식이 “CVSS v4.0 9.2”라고 하는 걸까요?

많은 엔지니어들이 궁금해하는 점은 “첫 번째 Hacker News 유출 시 CVSS 10.0로 평가되었는데, 왜 PHP 공식 발표에서는 9.2로 하향 조정되었는가?”라는 점입니다. 여기에도 취약성의 성격을 꿰뚫어 보는 열쇠가 있습니다.

결론적으로, 위험도가 낮아진 것이 아니라 “CVSS 점수 버전(v3.1과 v4.0)의 계산식 차이”에 따른 것입니다.

- 기존 CVSS v3.1의 점수(＝10.0 또는 9.8)는 인증 불필요(PR:N), 네트워크 경로(AV:N), 사용자 조작 불필요(UI:N) 조건에서 서버를 완전히 장악할 수 있는 RCE를 나타내는 것이 일반적이었습니다. 유출 경로는 “인증 불필요의 풀 RCE”라는 의미로 10.0으로 표현된 것으로 추정됩니다.
- PHP 공식이 채택하는 CVSS v4.0의 “9.2”는 최신 CVSS v4.0에서 기술적 조건을 평가할 때 사용되는 기준입니다. v4.0에서 점수가 정확히 “9.2”가 되는 대표적인 벡터는 다음과 같습니다. AT:P(공격 발생에 특정 전제 조건이 있는 경우)는 네트워크에서 인증 없이 공격 가능한 경우이지만, 힙 메모리 레이아웃 조정(ASLR 무결성 침해)이나 여러 번의 요청 시도, 또는 특정 SAPI(PHP-FPM 등) 환경인 등의 기술적 전제 조건이 존재하는 경우입니다. SC:N / SI:N / SA:N(후속 시스템에 대한 직접적인 영향이 없는 경우) 공격 난이도는 자체적으로 가장 낮습니다(누구나 즉시 공격 가능). PHP가 실행 중인 서버 자체는 완전히 장악되지만(VC:H/VI:H/VA:H), 컨테이너나 다른 시스템으로 인해 자동으로 권한이 전이되는 성질은 아닌 경우, v4.0의 계산식에서는 최고 점수가 “9.3 ~ 9.2” 근처에 멈추게 됩니다.

CVSS v4.0 기준에서 인증 불필요 및 원격 RCE의 실질적인 최고 점수를 의미한다고 해석하는 것이 정확합니다.

### ## 2.3 커뮤니티 논의에서 도출되는 “3가지 기술적 메커니즘”

*   **정보 필터링 (선택적 정보 수용)**: 사용자들이 자신의 관심사에 부합하는 정보만을 선택적으로 수용하는 현상으로, 알고리즘 기반 추천 시스템과 유사하게 사용자가 선호하는 콘텐츠에 노출되는 빈도가 높아지면서 더욱 강화되는 경향이 있습니다.

*   **확증 편향 (선택적 정보 수용)**: 자신의 기존 신념과 일치하는 정보만을 적극적으로 찾고, 반대되는 정보는 무시하거나 폄하하는 경향으로, 온라인 커뮤니티에서 특히 두드러지게 나타나며 특정 주장에 대한 지지를 강화하고 반대 의견을 배제하는 결과를 초래할 수 있습니다.

*   **집단 지성 (집단 지혜)**: 개별 구성원의 지식과 경험을 종합하여 개별적으로는 얻기 힘든 통찰력을 얻는 현상으로, 온라인 커뮤니티에서는 다양한 배경을 가진 사람들이 모여 토론하고 아이디어를 공유하면서 집단 지성을 발휘하여 문제 해결에 기여할 수 있습니다.

그러면 구체적으로 PHP 코어의 “어디”에 취약성이 있는 걸까요? “① 2004년 (PHP 5.0)부터 존재”, “② 앱의 코드와 관계없이 워드프레스나 라라벨의 표준 구성으로 작동”, “③ 두 개의 CVE (CVE-2026-109618 / 109619)가 짝을 이루어 동시에 수정된다”는 3가지 조건을 만족하는 경로는 PHP 아키텍처상 사실 상당히 제한적입니다.

해커 뉴스 댓글 섹션(SchizoDuckie 씨 등 논의) 및 과거 유사 사례를 토대로, 다음 3가지 기술적 가설이 유력하게 검토되고 있습니다.

가설 1 (가장 유력): HTTP 요청 분석 및 입력 필터링 계층(RFC 1867 등)에 대해 Hacker News에서도 “My guess is on some request filtering thing (요청 필터링 관련일까)”라고 지적한 것처럼, 가장 합리적인 설명은 이 계층에 있다는 것입니다. PHP는 WordPress나 Laravel의 PHP 코드(index.php)를 1줄이라도 실행하기 전에, POST 데이터, multipart/form-data 파일 업로드, 쿠키, 쿼리 문자열 등의 HTTP 요청을 C 언어로 작성된 코어 엔진이 자동으로 파싱하여 $_POST나 $_FILES와 같은 슈퍼글로벌 변수에 저장합니다.

- 이 요청 분석 처리(main/rfc1867.c, main/php_variables.c 등)는 2004년 PHP 5 시대부터 기본 설계가 계승되어 왔습니다.
- 또한, 앱 측 PHP 코드가 실행되기 전에 발동되므로, 워드프레스이든 라라벨이든 설정과 관계없이 “기본 구성 그대로” 공격이 성공합니다.

가설 ②：“정보 누출(ASLR 우회) + 힙 메모리 파괴”의 2단계 익스플로잇 체인인데, 왜 이번에 CVE-2026-109618과 CVE-2026-109619라는 두 CVE가 동일한 점수(9.2)로 동시에 발표되었을까요? 캘리포니아 등 주요 연구자들이 보고하는 C언어 기반 런타임(PHP 코어)의 RCE에서는 다음과 같은 두 가지 버그를 결합하는 경우가 잦습니다(2024년 glibc/PHP 필터 취약점 CNEXT 등과 유사한 구조).

- 첫 번째 버그(또는 기능 악용)는 버퍼 오버플로우와 같은 기술적 취약점을 이용하여 서버의 메모리 배치(주소) 정보를 응답에 누출시키고, OS의 방어 메커니즘(ASLR)을 무력화한다.
- 두 번째 버그는 힙 버퍼 오버플로우나 Use-After-Free(해방된 메모리의 재사용)를 유발하여 PHP 내부의 함수 포인터(Zend Engine의 메모리 관리 구조체 등)를 덮어쓰고 임의의 시스템 명령을 실행한다. 또한, HTTP 요청 처리나 스트림 처리 내에서 동일한 종류의 치명적인 메모리 손상 버그가 2개 발견될 가능성도 있다.

가설 ③: SAPI 계층(PHP-FPM/FastCGI) 또는 스트림 라ッパー(php://filter)의 결함은 2019년 CVE-2019-11043(Nginx + PHP-FPM에서의 RCE) 또는 2024년 CVE-2024-4577(PHP-CGI의 인자 주입)과 같이 웹 서버와 PHP 엔진 간의 통신 경계(SAPI 계층) 및 파일 조작 함수 내에서 호출되는 스트림 라ッパー(php://filter 등)의 버퍼 계산 오류로 인한 것일 수 있습니다.

> 
> 
> 어떤 가설이든 공통적으로 드러내는 “끔찍한 결론”은 “우리가 짠 PHP 프로그램(앱 계층 코드)을 아무리 깔끔하게 수정해도 막을 수 없는 가능성이 높다”는 것이다. C언어로 작성된 PHP 엔진 자체의 버그이기 때문에 바이너리를 자체적으로 업데이트(패치 적용)하는 것 외에 근본적인 해결책은 없다.
> 

### 2.4 PHP 5부터 최신 버전까지: 버전별 명암 및 대상 패치 목록

이번 취약점에 따른 버전별 현황 및 적용 수정 버전을 아래와 같습니다.

- 지원 기간 내 버전(PHP 8.2 / 8.3 / 8.4 / 8.5) 공식에서 제공하는 8.5.12, 8.4.27, 8.3.36, 8.2.35로 신속하게 업데이트하면 취약점을 해결할 수 있습니다. 승부는 “패치가 공개된 시점부터 적용까지의 속도”입니다. 왜냐하면 패치가 GitHub(php-src)에 공개되는 순간, 전 세계의 공격자들이 AI(LLM)나 차분 분석 툴을 사용하여 수분에서 수시간 내에 수정 코드에서 역산하여 공격 코드(PoC)를 생성하기 때문입니다.
- 지원 종료(EOL) 버전(PHP 5.x / 7.0~7.4 / 8.0 / 8.1)에 대해서는 PHP 개발팀으로부터 공식 패치는 제공되지 않습니다. Ubuntu나 RHEL(Red Hat)과 같은 Linux 배포판이 장기 지원(LTS)의 일환으로 독자적으로 수정 패치를 백포트(이식) 해주는 경우도 있지만, 시간 지연이 발생하며, 독자적인 빌드나 오래된 OS를 사용하는 경우에는 영원히 수정되지 않습니다.

### 2.5 워드프레스, 라라벨, 매그넷... 인기 있는 생태계로의 파급 효과

이전 설명에 따르면, 이번 RCE는 인기 프레임워크 및 CMS의 “기본 구성(표준 설치 상태)”에 영향을 미친다고 지적되고 있습니다.

- CMS(워드프레스, 드루팔, 줌라 등)가 전 세계 웹사이트의 40% 이상을 차지하는 워드프레스를 필두로, 로그인 화면, XML-RPC, REST API, 파일 업로드 기능 등 외부로부터 요청을 받기 위한 엔드포인트가 기본적으로 다수 공개되어 있어 봇에 의한 무차별 스캔의 주요 표적이 됩니다.
- 웹 프레임워크(Laravel, Symfony, CakePHP 등) 자체의 보안 기능(CSRF 보호, 유효성 검증 등)이 아무리 뛰어나더라도, 요청을 처리하는 PHP 엔진 레벨(C 언어 수준)에서 메모리 손상 취약점이 발생하는 경우, 프레임워크의 방어 로직이 작동하기도 전에 공격당할 위험이 있습니다.
- EC 플랫폼(Magento, EC-CUBE 등)의 결제 정보 및 고객 개인 정보를 다루기 때문에 공격자에게 금전적 가치가 매우 높고, 랜섬웨어 및 웹 스크리닝(카드 정보 탈취)의 주요 표적이 되어 최우선으로 노립니다.

### 2.6 공격 벡터 시각화: 외부 요청으로부터 침투까지의 흐름

공격자가 외부에서 PHP 서버를 어떻게 해킹하는지, 일반적인 5단계 과정을 살펴보겠습니다.

> 
> 
> 💡 용어 설명: 페이로드(Payload)와 리버스 셸(Reverse Shell)은 공격자가 전송하는 “악성 코드 본체(폭탄의 핵심)”를 의미합니다. 리버스 셸은 일반적인 웹 통신과는 반대로, “해킹된 서버의 측에서 외부 공격자의 기계로 연결을 시도하도록 하는” 기술입니다. 기업 내부 또는 서버 방화벽은 “외부 침입”을 차단하지만 “내부에서 외부로 통신”을 허용하는 경우가 많으므로, 이를 이용하여 탐지를 우회하고 원격 조작을 확립하는 데 활용됩니다.
> 

## 패치 적용 전의 “공백의 시간”을 어떻게 보낼 것인가

패치가 배포되기 전, 또는 운영 환경 테스트가 완료되어 패치를 적용하기까지 몇 시간에서 며칠 정도의 시간을 어떻게 보낼지. 여기서 취해야 할 “적극적인 방어 전략”을 3단계로 설명합니다.

### 3.1 【즉시 실행】자산 재고 정리 및 노출 면 최소화 (공격 표면 감소)

패치를 기다리는 동안 가장 효과적인 대책은 “공격자가 접근할 수 있는 경로를 줄이는 것”과 “만약 침입이 발생하더라도 명령 실행을 막는 것”입니다.

첫째, 자사 서버에서 어떤 버전의 PHP가 실행되고 있는지 모두 파악합니다. 즉, 철저한 자산 실태 조사를 실시합니다.

- 본격 서버뿐만 아니라, 잊기 쉬운 스테이징 환경, 개발 환경, 배치 처리 서버를 모두 목록으로 정리합니다.
- php -v 명령어나 패키지 관리 도구(apt, dnf, yum 등)를 사용하여 정확한 버전을 확인하고, EOL(End of Life) 버전이 혼합되어 있는지 확인합니다.

② disable_functions 기능을 통해 위험한 함수를 비활성화합니다. PHP 설정 파일(php.ini)의 disable_functions 항목을 사용하여 공격자가 OS 명령 실행 시 자주 악용하는 함수를 일시적으로 무효화할 수 있습니다.

※ 주의: 애플리케이션 측(백업 처리 또는 이미지 변환 등)에서 해당 함수를 정규적으로 사용하고 있는 경우, 해당 기능이 작동하지 않게 되므로, 사전에 확인하고 스테이징 환경에서 테스트를 진행해 주시기 바랍니다.

> 
> 
> 💡 용어 설명: disable_functions (디세이블 함수즈)는 무엇을 하는 것? PHP.ini에서 특정 PHP 내장 함수를 프로그램에서 호출할 수 없도록 차단하는 설정입니다. 왜 필요한가? PHP 취약점을 악용한 공격으로 인해 OS에 명령을 내리는 것을 방지하여 RCE(원격 코드 실행)의 성공을 막을 수 있습니다.
> 

③ 네트워크 제한 및 WAF 활용

- 관리 화면의 IP 제한: /wp-admin이나 /phpmyadmin과 같은 관리 엔드포인트는 내부 IP 주소 또는 VPN 경로를 통해서만 접근 가능하도록 설정합니다.
- WAF(웹 애플리케이션 방화벽) 규칙을 강화하여, 부자연스러운 긴 쿼리 문자열이나 시스템 명령어 문자열을 포함하는 요청을 차단하는 규칙(가상 패치)을 활성화합니다.

④ 로그 및 프로세스 통합 모니터링

- 웹 서버의 접근 로그(비정상적인 요청)와 php_error.log(세그멘테이션 오류 또는 예기치 않은 오류)를 모니터링합니다.
- 톱(top)이나 PS 명령어 등과 같이 웹 서버의 실행 사용자(www-data, Apache, Nginx 등)가 의심스러운 셸(/bin/sh 또는 /bin/bash)을 실행하고 있지 않은지 확인합니다.

### 3.2 공식 패치 적용 흐름: 안전한 업데이트 및 검증 단계

패치가 공개되면 가능한 한 빨리 적용하고 싶지만, 급하게 갑자기 운영 환경을 업데이트하면 호환성 문제로 서비스 전체가 중단될 위험이 있습니다. 다음 표준 흐름을 따라야 합니다.

### 3.3 지원 종료(EOL) 버전을 계속 사용하는 위험성과 대안

만약 PHP 5.x 또는 7.x와 같은 EOL(End of Life) 버전에서 사용하고 있으며, 지금 당장 PHP 8 시리즈로 업그레이드할 수 없는 경우에는 다음과 같은 완화책(시간 벌기의 다층 방어)을 조합하여 긴급 상황을 넘기면서 이행 계획을 진행해야 합니다.

1. 가상 패치(Virtual Patching) 도입 시 WAF(웹 애플리케이션 방화벽) 및 IPS(침입 방지 시스템)를 전방에 배치하여 취약점을 악용한 요청 패턴을 입구에서 차단합니다. 코드 수정 없이 즉시 적용할 수 있지만, 암호화된 공격에는 침투될 위험이 있습니다.

2. 네트워크 분리 및 격리를 통해 외부 공개가 필수적이지 않은 시스템은 인터넷과 완전히 분리하고, VPN이나 발목 서버를 통해서만 접근하도록 합니다.

3. 읽기 전용 파일 시스템 및 컨테이너 격리 애플리케이션 디렉토리(/var/www/html 등)에서 웹 서버 사용자의 쓰기 권한을 박탈(Read-Only화)하여 백도어 설치를 방지합니다.

4. PHP 8 시리즈로의 단계적 마이그레이션(근본적인 해결)을 위해 PHPStan이나 Psalm과 같은 정적 분석 도구(코드를 실행하지 않고 비표준 기능이나 타입 오류를 탐지하는 도구)를 활용하여, 테스트를 반복하면서 PHP 8 시리즈로의 전환을 최우선 프로젝트로 진행해 주십시오.

## 4. 교훈과 향후 방어책: 취약성 관리의 패러다임 전환

이번 사건이 우리에게 제시하는 것은 “패치가 나오면 그대로 대응해도 되는”이라는 기존의 수동적인 운영 모델의 한계입니다.

### 4.1 “엔배고”로부터 배워야 할 교훈

1차 사건 이후 일본 정부가 정보 공개를 늦게 결정한 것은 상황의 심각성을 과장하여 지연시키는 요인이 되었고, 오히려 정보 은폐 시도가 혼란을 야기했다. 정보 공개 방식이 신뢰도를 높이는 데 중요한 역할을 한다는 점을 인식해야 하며, 객관적인 자료와 전문가 의견을 함께 제시하여 신뢰도를 확보해야 한다. 정보 공개 이후 대응은 신속하고 일관성 있게 이루어져야 하며, 초기 대응 미흡으로 상황이 악화되는 것을 방지해야 한다. 정보 공개의 시기, 방식, 대응 등 모든 측면에서 신중하게 접근하고, 정보 공개를 통해 얻은 정보를 바탕으로 객관적인 분석과 평가를 통해 정책 결정에 활용해야 한다. 춘천 지역 사건과 같이 정보 봉쇄 전략이 실패할 경우 발생할 수 있는 문제점을 미리 예측하고 대비하는 것이 중요하다.

지금까지 우리는 “중대한 취약점이 발견되더라도 패치가 배포되기 전까지 비밀이 유지되는(엔버고가 작동하는) 전제에 의존해 왔습니다.”라는 가정에 의존해 왔습니다. 하지만 현대에는 SNS나 포럼을 통해 패치 공개 전에 정보가 유출되는 일이 흔하지 않습니다.

정보가 누출될 수 있다는 전제, 제로데이 공격은 언제든 발생할 수 있다는 가정(제로트러스트의 접근 방식)에 기반하여 패치가 적용되지 않은 상태에서도 즉시 다운되지 않는 시스템 설계로 전환해야 합니다.

### 4.2 “패치를 덮고 지나가는” 방식에서 벗어나는 4가지 현대적인 운영 방식

향후 PHP 보안 운영에서는 다음 4가지 접근 방식을 적용하는 것이 권장됩니다.

① 시프트레프트(Shift-Left)는 실천적인 보안 대책을 “개발 단계의 처음(왼쪽)”으로 통합하는 접근 방식입니다. CI/CD 파이프라인에 정적 분석 도구, 취약성 스캔(GitHub Dependabot이나 Snyk 등)을 포함시켜 오래된 라이브러리나 위험한 코드를 자동으로 감지합니다.

② 불변 인프라(Immutable Infrastructure)를 채택하여 운영 중인 서버에 로그인하지 않고 수동으로 패치를 적용하는 대신, Docker 컨테이너 등을 활용하여 “패치 적용된 새로운 이미지를 빌드하고 기존 컨테이너와 완전히 교체”하는 방식으로 운영합니다. 이를 통해 몇 분 만에 모든 서버의 업데이트가 완료될 뿐만 아니라, 만약 침입이 발생하더라도 컨테이너와 함께 폐기하고 깨끗한 상태로 되돌릴 수 있습니다.

③ 최소 권한 원칙(Principle of Least Privilege)을 철저히 적용하여 웹 서버나 PHP-FPM을 결코 루트 권한으로 실행하지 않고, 별도의 저 권한 사용자에서 실행합니다. 또한, 소스 코드 저장소에 대한 쓰기 권한을 금지하고, 업로드용 디렉토리에서는 PHP 스크립트 실행 자체를 웹 서버 설정에서 금지합니다.

④ 모니터링을 관측 가능성(Observability)으로 전환하여 단순한 로그 저장에 그치지 않고, “심야에 웹 서버에서 외부의 미상 IP로 통신이 발생했는지”, “평소에 호출되지 않는 시스템 콜이 실행되었는지” 등과 같은 이상(Anomaly)을 실시간으로 감지하여 알림을 전송하는 시스템을 구축합니다.

### 4.3 제로데이 공격을 방지하는 “다층 방어” 전략

단일 방어벽(예를 들어 WAF만)에만 의존하는 대신, 4개의 층을 쌓아 올리면, 혹시 모를 제로데이 취약점을 악용하더라도 피해를 최소화할 수 있습니다.

## 5. 요약 및 체크리스트: 오늘 밤 당신이 해야 할 일

마지막으로, 이번 위기를 극복하기 위한 구체적인 체크리스트와 정보 수집의 핵심 원칙, 그리고 자주 묻는 질문에 대한 답변을 정리했습니다. 팀의 업무 관리 등에 그대로 복사하여 활용해 주세요.

### 5.1 우선순위별 액션 아이템 목록

【긴급: 오늘 밤 ~ 몇 시간 이내】공격 표면 최소화 및 감시

□ 모든 서버(본番, 테스트, 배치 등)의 PHP 버전을 확인하고 목록화했는가? (php -v) □ php.ini의 disable_functions에서 불필요한 위험 함수(exec, system, passthru, shell_exec, proc_open, popen 등)를 비활성화했는가? □ 관리 화면(/wp-admin, /phpmyadmin 등)에 대한 접근을 사내 IP 또는 VPN 경로로만 제한했는가? □ WAF에 비정상적인 요청이나 명령어 실행 패턴을 차단하는 규칙을 적용했는가? □ 접근 로그, PHP 오류 로그, 의심스러운 프로세스 시작을 감시하는 체계를 구축했는가?

단기: 패치 공개 후 최대 수일 이내 검증 및 패치 적용

□ 공식 정보원(php.net 등)에서 수정 버전(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35)의 배포를 확인했습니까? □ 스테이징 환경에서 패치를 적용하고, 회귀 테스트(주요 기능의 정상 작동 확인)를 실시했습니까? □ 운영 환경으로 단계적(카나리아 릴리즈 등)으로 패치를 적용하고, PHP-FPM, Apache(mod_php) 프로세스를 재시작하여 메모리상의 오래된 바이너리를 확실하게 업데이트했습니까? □ EOL(End of Life, 지원 종료) 버전의 서버를 특정하고, 네트워크 격리 또는 가상 패치 등의 완화 대책을 적용했습니까?

【中期：数週間〜数ヶ月以内】構造的な体質改善

EOL 버전(PHP 5.x / 7.x / 8.0 / 8.1)에서 지원하던 PHP 8 시리즈로의 전환 계획을 수립했는가? 웹 서버 실행 사용자 권한 및 디렉토리 쓰기 권한(최소 권한 원칙)을 재검토했는가? CI/CD에 자동 취약성 검사 도입 또는 컨테이너화에 따른 신속한 배포 체계를 고려했는가?

### 5.2 혼란 방지 방법: 신뢰할 수 있는 정보원 판별하는 방법

이번과 같이 SNS나 게시판의 유출 정보가 먼저 알려지는 경우에는, 허위 정보나 과장된 선동에 휘둘리지 않도록 정보 리터러시가 중요합니다. 정보 출처는 다음과 같이 4단계로 중요도를 평가하여 판단해야 합니다.

- 레벨 1: 공식 발표(신뢰도: 최고) 정보 출처: php.net, NVD/CVE 공식 데이터베이스, OS 벤더(Ubuntu, Red Hat 등) 및 클라우드 사업자의 공식 자문 방식을 활용합니다. 패치 적용 또는 운영 환경 변경의 최종 판단 근거로 사용합니다.
- 레벨 2: 검증 완료된 보안 전문가 및 기업(신뢰도: 높음) 정보원: watchTowr, Snyk, JPCERT/CC, IPA 등 전문 기관 및 보안 기업의 기술 보고서 활용 방식: 구체적인 재현 조건 및 완화책을 파악하기 위한 조기 경보 정보로 활용합니다.
- 레벨 3: 기술 커뮤니티 보고서(신뢰도: 보통) 정보 출처: Hacker News, Reddit(r/sysadmin 등), 기술 블로그 활용 방식은 “어떤 설정으로 방지할 수 있었는지”, “패치 적용 시 어떤 문제가 발생했는지”와 같은 현장의 경향을 파악하고, 반드시 근거를 확보합니다.
- 레벨 4: SNS 미확인 유출 정보(신뢰도: 낮음) 정보 출처: X(구 트위터) 등의 익명 게시물, 근거 없는 “겁 스럽다”는 확산 게시물 형태 처리 방식: 패닉에 빠져 시스템을 긴급 정지하는 등의 일은 피하고, “레벨 1~2의 정보를 확인하러 가는 계기”로서만 취급합니다.

> 
> 
> 💡 用語解説：CVE（Common Vulnerabilities and Exposures / 共通脆弱性識別子）何をするもの？：発見された脆弱性に1つずつ割り当てられる世界共通の整理番号（今回の場合は CVE-2026-109618 と CVE-2026-109619）。身近な例え：「リコール対象製品の型番」です。SNSの曖昧な噂ではなく、このCVE番号で検索することで、世界中の正確な公式情報やパッチ対応状況を一発で追跡できます。
> 

## ❓ 자주 묻는 질문 (Q&A)

**Q1. 독서미터 이용 약관에 위반하는 행위는 있습니까?**

A1. 네, 있습니다. 독서미터 이용 약관에 위반하는 행위는 계정 정지 또는 삭제, 법적 조치로 이어질 수 있습니다. 구체적으로는 다음과 같은 행위가 있습니다.

*   저작권 침해 콘텐츠 게시 (예: 무단으로 책 텍스트 또는 이미지를 업로드하는 경우)
*   타인의 사생활을 침해하는 행위 (예: 개인 정보를 무단으로 공개하는 경우)
*   스팸 행위 (예: 관련 없는 메시지를 대량으로 게시하는 경우)
*   허위 정보 유포 (예: 독서미터 운영과 관련하여 사실과 다른 정보를 전달하는 경우)
*   독서미터의 건전한 운영을 방해하는 기타 행위

**Q2. 독서미터 운영 정책에 대해 알려주세요.**

A2. 독서미터는 독서 커뮤니티를 건강하게 발전시키는 것을 목적으로 합니다. 이에 따라 다음 운영 정책을 준수해 주시기 바랍니다.

*   상호 존중의 정신: 독서미터 이용자 간 서로의 의견을 존중하고 건설적인 논의를 진행하는 것
*   저작권 보호: 저작권 침해 행위는 절대 하지 않는 것
*   사생활 보호: 타인의 사생활을 침해하는 행위는 절대 하지 않는 것
*   건전한 커뮤니티 유지: 독서미터의 건전한 운영을 방해하는 행위는 하지 않는 것

**Q3. 독서미터 운영에 협력할 수 있습니까?**

A3. 네, 협력해 주시면 감사하겠습니다. 독서미터 운영에 기여할 수 있는 방법으로는 다음과 같은 것들이 있습니다.

*   피드백: 독서미터 개선점이나 요청 사항을 운영팀에 전달하는 것
*   커뮤니티 기여: 독서미터 커뮤니티 활동에 참여하여 활발한 논의를 진행하는 것
*   콘텐츠 게시: 독서미터 콘텐츠 (리뷰, 독서 기록 등)를 게시하는 것

**Q4. 독서미터 운영팀은 어떻게 구성되어 있습니까?**

A4. 독서미터 운영팀은 주로 다음 구성원으로 구성되어 있습니다.

*   개발팀: 독서미터 시스템 개발, 기능 개선, 서버 관리 등을 수행
*   커뮤니티팀: 독서미터 커뮤니티 운영, 이벤트 기획, 사용자 지원 등을 수행
*   마케팅팀: 독서미터 홍보 활동, 신규 사용자 확보 등을 수행

**Q5. 독서미터 이용에 관한 문의처는 있습니까?**

A5. 네, 있습니다. 독서미터 이용에 관한 문의는 다음 창고로 문의해 주시기 바랍니다.

*   독서미터 도움말센터: [https://help.rakuten-books.co.jp/](https://help.rakuten-books.co.jp/)
*   문의 양식: [https://help.rakuten-books.co.jp/contact/](https://help.rakuten-books.co.jp/contact/)

마지막으로, 현장 엔지니어 및 사이트 운영자로부터 자주 제기되는 질문에 답변하겠습니다.

Q1. 제 사이트는 렌털 서버 상의 워드프레스인데, 어떻게 해야 할까요? A. 우선 이용하고 있는 렌털 서버(호스팅 사업자)의 “공지”나 “장애 및 유지보수 정보”를 확인해 주세요. 많은 관리형 렌털 서버에서는 서버 회사 측에서 PHP 보안 패치를 자동 적용해 줍니다. 다만, 관리 화면에서 직접 PHP 버전을 “PHP 7.4”와 같이 오래된 버전으로 고정하고 있다면 패치가 적용되지 않으므로, 서버 관리 화면에서 지원 기간 내의 “PHP 8.2 / 8.3”와 같이 최신 버전으로 전환하는 준비를 해 주세요.

Q2. WAF(웹 애플리케이션 방화벽)을 설치했더라면 PHP 패치 적용을 서둘러서도 괜찮은가요?

A. 아닙니다. WAF만으로는 부족합니다. WAF는 알려진 공격 패턴을 입구에서 차단하는 강력한 ‘방패’이지만, 공격자가 통신을 암호화하거나 새로운 공격 패턴을 만들어낸다면 우회될 수 있습니다. WAF는 단순히 ‘패치를 안전하게 테스트하고 적용하기까지 시간을 벌 수 있는 수단’으로 이해해야 하며, 근본적인 해결책인 PHP 자체의 업데이트를 반드시 실시해야 합니다.

Q3. 오래된 시스템에서 EOL 버전(PHP 5.x 또는 7.x)을 사용하고 있었으며, 내부 네트워크(사내 LAN)에 한정되어 있어서 안전하다고 생각하시죠? A. 매우 위험한 착각입니다. 최근의 사이버 공격(랜섬웨어 등)은 먼저 표적 기업의 직원 PC에 피싱 이메일 등으로 침투하거나, VPN 장비의 취약점을 이용해 사내 네트워크에 진입합니다. 이후 사내에서 “패치가 적용되지 않은 오래된 서버(EOL)”를 찾아 악용하고 피해를 확대시킵니다(이를 수평 확산/라테럴 무빙이라고 합니다). 사내 시스템이라 할지라도 접근 제한 강화와 PHP 8系로의 전환이 필수적입니다.

Q4. 패치 적용 후, 진정으로 안전해졌는지 어떻게 확인해야 할까요? A. 다음 3단계로 확인해 주세요.

- 버전 확인: 명령줄에서 `php -v`를 실행하는 것 외에도, 웹 서버를 통해 (PHP-FPM이나 Apache 모듈) 실행되는 PHP 프로세스가 제대로 재시작되어 새로운 버전으로 작동하는지 확인합니다. 터미널의 CLI 버전만 업데이트되고, 웹 서버 측이 이전 프로세스로 계속 작동하는 실수가 흔히 있습니다!
- 기능 테스트(회귀 테스트): 로그인, 폼 제출, 결제 등의 주요 기능이 정상적으로 작동하는지 확인합니다.
- 패치 적용 전 이미 백도어가 삽입되어 있지 않은지, 그리고 패치 적용 직후 오류가 발생하고 있지 않은지, 수일간 로그를 주의 깊게 살펴보시기 바랍니다.

## 마무리: 취약점 관리를 “습관”으로 전환하기

이번 PHP 코어 취약점 유출 사태는 우리에게 “정보의 비대칭성과 시간과의 싸움”이라는 현대 사이버 보안의 가혹한 현실을 드러냈습니다.

하지만, 해야 할 일은 명확합니다.

- 오늘 밤은 노출 면을 최소화하고 방패를 구축할 것이다.
- 공식 패치가 출시되면 반드시 검증 후 적용할 것임.
- 이를 계기로 오래된 PHP 환경에서 벗어나 다층 방어를 습관화하는 것을 실천해야 합니다.

이 글이 당신이 관리하는 서버와 서비스를 보호하는 데 도움이 되기를 바랍니다. 도움이 되셨다면 “좋아요”를 누르거나 팀 내에서 공유해 주세요!

📱 구글 픽셀을 최저가로 사는 비법 (10% 할인 쿠폰 코드 소개)

Google 스토어는 구형 스마트폰(아이폰/픽셀 등)의 중고폰 할인 혜택이 매우 높아 매력적이지만, 아래 소개 코드를 사용하면 본체 가격에서 10% 할인으로 구매할 수 있습니다! 무드득 이용도 환영입니다✨

[사용법] 구글 스토어에 로그인하여 결제 화면의 “프로모션 코드”에 입력하면 됩니다! ※ 각 코드는 한 번만 사용 가능합니다. 사용되지 않는 경우 다른 코드를 시도해 보세요.

**출처:** [note 원문](https://note.com/zenkok/n/n9550d4455982)

*번역: Gemma 3(.44) 초벌 + 교정 95청크*

[원문 보기](https://note.com/zenkok/n/n9550d4455982) | 출처: note.com