DEEP DIVE REPORT

CVE-2026-48356 PolyShell: Magento·Adobe Commerce REST API 미인증 파일 업로드와 deepveindrilling.com 캠페인

SecurityDesk
• 2026.11.02 • 조회 1

Adobe Commerce·Magento 스토어를 겨냥한 미인증 파일 업로드 취약점이 보안 연구기관 Sansec을 통해 공개되었습니다. CVE 번호는 CVE-2026-48356, Sansec이 붙인 이름은 PolyShell입니다. 인증 없이 실행 가능한 파일을 올려 서버에서 동작시킬 수 있다는 점, 그리고 실제 침해 관찰에서 핵심 패치가 누락된 설치가 대상이 되었다는 점이 이 취약점을 평시의 정기 점검과 다른 급도로 다루게 만듭니다.

개요

개요 인포그래픽
Sansec은 Magento REST API에 무제한 파일 업로드(unrestricted file upload) 결함이 있다고 밝히고, 이를 PolyShell(CVE-2026-48356)로 명명했습니다. 이 결함을 이용하면 인증되지 않은 공격자도 스토어에 실행 가능한 파일을 업로드할 수 있습니다. 공격에는 폴리글랏(polyglot), 즉 실행 코드를 이미지로 위장한 파일이 사용되어 검증 절차를 우회합니다.

이론상의 위험이 아니라 실제 침해 관찰이 함께 보고되었습니다. Sansec은 deepveindrilling.com으로 관측된 Magento CMS 블록 로더 캠페인에서 PolyShell(CVE-2026-48356)을 통한 웹셸(webshell) 업로드가 사용되었다고 밝혔습니다. CVE Project / Adobe(CNA) 레코드에는 CVE-2026-48356 식별자와 버전 2.0.3 관련 정보가 기재되어 있습니다.

영향 범위

가장 직접적인 대상은 Adobe Commerce·Magento, 그중에서도 REST API를 외부에 노출하는 스토어입니다. CVE 레코드가 CVE-2026-48356와 버전 2.0.3 관련 정보를 담고 있으나, 제공된 자료만으로는 정확한 영향 버전의 상하한과 수정 버전(공식 패치 번호)을 확정할 수 없습니다. 이 부분은 벤더 권고로 확인해야 합니다.

반면 침해 분포는 더 구체적으로 관찰되었습니다. Sansec의 eComscan 관측에서, 캠페인 전반에 걸쳐 핵심 패치를 최소 하나 누락한 Magento 2 설치 169곳에서 로더가 발견되었고, 그중 102곳(60%)에서 PolyShell 또는 SessionRea로 업로드된 파일이 함께 확인되었습니다.

  • 확인된 침해 관련 조건: 핵심 패치 최소 하나 누락. 로더가 발견된 169곳이 이 조건을 공유합니다.
  • 확인된 침해 관련 관찰: PolyShell(CVE-2026-48356)을 통한 웹셸 업로드, 그리고 로더 발견 설치 169곳 중 102곳(60%)에서 PolyShell 또는 SessionRea 업로드 파일의 동반 확인.
  • 조건부 해석: 전자상거래 스토어라는 특성 때문에 침해가 발생하면 콘텐츠 변조에 그치지 않고 결제·고객 데이터 관련 위험으로 확대될 수 있다는 운영 우려가 성립합니다. 다만 특정 스토어에서 결제 데이터 유출이 확인되었다는 진술은 제공된 자료에 없습니다.

기술적 분석

기술적 원인은 Magento REST API의 무제한 파일 업로드 결함입니다. 공격자는 실행 코드를 이미지로 위장한 폴리글랏 파일을 제출해 검증을 통과시키고, 업로드된 파일은 서버에서 웹셸로 동작할 수 있습니다. 이 기전에는 인증 단계가 없습니다. 계정 탈취나 내부 발판을 전제하지 않고 원격에서 진입점이 생길 수 있다는 뜻이며, REST API를 공개한 스토어는 노출면이 곧 공격 표면이 됩니다.

관찰 자료에서 확인할 수 있는 것은 두 사안의 동시 존재입니다. Sansec은 PolyShell(CVE-2026-48356)을 통한 웹셸 업로드가 deepveindrilling.com 캠페인에서 사용되었다고 보고했고, 로더가 발견된 169곳 중 102곳에서 PolyShell 또는 SessionRea로 업로드된 파일이 함께 나타났다고 밝혔습니다. 어떤 도구가 어떤 순서로 투입되었는지를 보여주는 자료는 제공 범위에 없습니다. 따라서 운영적 의미는 인과 관계의 확정이 아니라 공존 가능성에 맞춰야 합니다. 로더 흔적과 업로드 파일 흔적이 같은 설치에서 다수 관측되었다는 사실은, 두 종류를 나눠 다루면 확인 범위가 좁아질 수 있음을 시사합니다.

여기서 독자가 가져갈 판단은 조건부입니다. 확인된 관찰은 침해가 패치 누락 환경에 집중되었다는 것이고, 거기에서 도출되는 운영 의미는 버전 번호 표만 들여다보는 것보다 지금 설치의 패치 누락 상태를 먼저 대조하는 편이 우선순위 판단에 가깝다는 해석입니다. 이 해석은 위 관찰에서 이끌어낸 것이며, 벤더가 공식 명시한 영향 경계를 대체하지 않습니다.

대응 방안

근거가 확정해 주는 지점

  • 미인증 원격 파일 업로드가 기전 수준에서 확인되었다는 점은, REST API를 노출한 Adobe Commerce·Magento 설치에 자체 노출 평가가 필요하다는 해석의 근거가 됩니다. 제공 자료의 설명은 인증 실패나 계정 탈취를 전제하지 않는 경로라는 것입니다.
  • 관측된 침해의 공통 조건은 핵심 패치 최소 하나 누락이었습니다. 로더가 발견된 169곳이 이 조건을 공유하므로, 현재 설치의 패치 누락 여부 대조가 노출 판단의 출발점이 됩니다.
  • 같은 설치에서 PolyShell 또는 SessionRea 관련 업로드 파일이 102곳(60%)에서 함께 확인되었습니다. 업로드 계열 흔적과 로더 흔적을 분리해서 다루면 확인 범위가 좁아질 수 있습니다.

확인해야 할 항목

  • 벤더 권고 확인: 제공된 자료에 Adobe의 공식 권고문이 없어서, 정확한 영향 버전과 수정 버전 및 공식 패치 번호(KB/CU)는 벤더 권고를 통해 확정해야 합니다.
  • 폴리글랏 우회 지점: 실행 코드를 이미지로 위장한 파일이 검증을 우회한다는 점이 확인된 만큼, 업로드 경로와 REST API 노출 범위가 점검의 초점이 됩니다. 구체적인 설정값이나 단계별 절차는 제공 근거에 없습니다.

제공 근거가 다루지 않는 대응

  • 로그 분석 절차, 침해 지표(IoC) 적용 방법, 스캐너 운용 지침, 서버 격리·재구축 같은 복구 절차, 업로드 디렉터리 권한 조정 등 심층 방어 구성에 대한 근거는 제공된 자료에 없습니다. Sansec이 관측 과정에서 자사 도구 eComscan을 사용했다는 보고는 있으나, 이것이 독자 환경에 대한 점검 지침을 뒷받침하지는 않습니다. 이 영역은 이 글의 근거 범위에 포함되지 않습니다.

한계와 확인 필요 사항

  • 정확한 영향 버전 경계, 수정 버전, 공식 패치 번호(KB/CU)는 제공된 증거에서 명확히 확인되지 않았습니다. 적용 대상 판단은 벤더 권고로 최종 확인해야 합니다.
  • CISA KEV(알려진 악용 취약점 카탈로그) 등재 여부도 이 자료로는 확인되지 않았습니다. 등재를 전제로 한 대응 기한이나 우선순위 산정은 이 글의 근거 범위에 포함되지 않습니다.
  • 공개 PoC(개념 증명 코드)의 존재 여부도 확인되지 않았습니다. 본문의 악용 판단은 실제 캠페인 관찰에 기반한 것이며, PoC 유무에서 도출한 것이 아닙니다.
  • 개별 사건의 침해 타임라인, 초기 진입 경위, 결제 데이터 유출 여부 등은 제공된 증거 범위를 넘는 항목입니다. 본문의 영향·대응 서술 중 일부는 확인된 사실 관계에서 도출된 조건부 운영 판단이므로, 자사 환경의 노출 평가를 거쳐 적용 시점과 범위를 정하기 바랍니다.

참고자료

함께 읽으면 좋은 글

본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9