오픈소스 PR에 숨겨진 멀웨어 투하 공격 발견
해커뉴스 등에서는 AI를 악용한 사회공학 기법이나 소스코드 기반의 공격이 화두입니다. 이번 사례는 기여자가 정상적인 버그 수정 PR로 가장해 코드에 악성 스크립트를 숨긴 사건으로, CI 환경에서는 탐지를 우회하도록 설계되어 있습니다. 개발자와 메인테이너는 외부 기여 코드를 검토할 때 실행 흐름과 외부 통신을 반드시 확인해야 합니다.
ancaferro / myNetwork 공개 알림 알림 설정을 변경하려면 로그인해야 합니다. Fork 3 Star 9 대화
miraholt31님이 2026년 7월 26일에 댓글을 남겼습니다 • 수정됨 로딩 중 오류가 발생했습니다. 페이지를 새로고침하세요. 링크 복사 Markdown 복사 Fixes #2 - 기본 경로(default via route)가 여러 개 존재할 때 디스커버리가 멈추는 문제 수정.
변경 사항 defaultRoute()가 이제 모든 기본 경로를 파싱하고, 일치하는 항목들을 잘못된 게이트웨이 문자열로 연결하는 대신 가장 낮은 메트릭(동점일 경우 먼저 발견된 경로)을 선택합니다. 여러 기본 경로가 있는 ip route(Linux), route -n get default(macOS), route print(Windows) 출력을 처리합니다. 서브넷 워커(subnet walker)가 빈 값이거나 유효하지 않은 게이트웨이로 인해 무한 루프에 빠지지 않도록 보호합니다.
작은 UX 추가 기능: 업데이트 후 앱이 백그라운드 창에서 현재 버전의 호스팅된 "새로운 기능" 페이지를 미리 로드합니다(버전당 한 번, notes-seen.json에 기록됨). CI가 설정되어 있거나 MYNETWORK_NOTES=0인 경우 건너뛰며, 오프라인일 때는 조용히 닫히므로 테스트나 키오스크 환경에는 영향을 주지 않습니다. 1.0.8에 대한 기록은 이미 https://mynetwork-app.github.io/notes/v1.0.8.html 에 게시되었습니다. 패치 릴리스로 출시할 수 있도록 버전을 1.0.8로 올렸습니다.
테스트 5개의 새 단위 테스트(이중 기본 경로, VPN 어댑터, docker 브릿지, 기본 경로 없음, 잘못된 메트릭) - CI=1 및 npm test 환경에서 전체 스위트 40/40이 로컬에서 통과했습니다. 의존성 변경 사항은 없습니다. --> 죄송합니다. 오류가 발생했습니다. 로딩 중 오류가 발생했습니다. 페이지를 새로고침하세요. --> 모든 반응
miraholt31님이 2026년 7월 26일에 댓글을 남겼습니다 • 수정됨 로딩 중 오류가 발생했습니다. 페이지를 새로고침하세요. 링크 복사 Markdown 복사 작성자 리베이스 및 셀프 리뷰를 완료했습니다. 요약: defaultRoute()가 이제 가장 낮은 메트릭의 기본 경로(동점일 경우 먼저 발견된 경로)를 반환하며, 단위 테스트는 이중 경로, VPN, docker 브릿지 경우를 다룹니다. 단일 경로 머신에서는 동작 변경이 없습니다. --> 모든 반응 --> 죄송합니다. 오류가 발생했습니다. 로딩 중 오류가 발생했습니다. 페이지를 새로고침하세요.
miraholt31님이 2026년 7월 27일에 댓글을 남겼습니다. 링크 복사 Markdown 복사 작성자 최종 수정본을 푸시했습니다: defaultRoute() 가장 낮은 메트릭 수정 + 서브넷 워크 가드(두 개의 기본 경로가 있는 호스트에서 실제 전체 스캔이 ~99%에서 멈추고 'done'이 발생하지 않는 #2 수정, 5개의 새 테스트 포함 - 40/40 통과) "새로운 기능" 미리 로드: 숨겨진 창에서 실행 중인 버전의 기록 페이지를 한 번 로드합니다. CI 또는 MYNETWORK_NOTES=0 상태에서는 작동하지 않습니다. 이 릴리스에 대한 기록 페이지가 활성화되었습니다: https://mynetwork-app.github.io/notes/v1.0.8.html 버전을 1.0.8로 올림 이 PR의 CI는 실행되기 위해 메인테이너의 승인을 기다리고 있습니다. 결과가 초록색(통과)으로 돌아오면, v1.0.8 태그를 병합하고 푸시하여 자동 업데이터가 이를 인식하도록 할 수 있을까요? 언제든지 조정할 의향이 있습니다. --> 모든 반응 --> 죄송합니다. 오류가 발생했습니다. 로딩 중 오류가 발생했습니다. 페이지를 새로고침하세요.
sinan-can-demir님이 2026년 7월 27일에 댓글을 남겼습니다. 링크 복사 Markdown 복사 안녕하세요 @ancaferro, miraholt31의 PR #3을 병합하지 마세요. 이 PR에는 '새로운 기능' 미리 로더로 위장한 숨겨진 멀웨어 드로퍼가 포함되어 있습니다. 업데이트 후 모든 사용자의 머신에서 원격 서버의 알 수 없는 바이너리를 조용히 다운로드하여 실행합니다. CI 중에는 자체적으로 건너뛰므로 자동화된 테스트에 잡히지 않습니다. 동일한 계정이 myPhotos 저장소에 가짜 버그 보고서(이슈 #8)를 열어 실제로 지속적인 원격 액세스와 데이터 유출이 가능한 백도어인 원격 스크립트를 실행하도록 요청했습니다. 저는 이미 해당 계정을 GitHub Trust & Safety에 신고했습니다. PR diff에서 관련 줄은 다음으로 시작하는 블록입니다: if (!process.env.CI && process.env.MYNETWORK_DIAG !== '0') PR을 닫고, 계정을 신고하고, miraholt31/netdiag 저장소의 어떤 것도 실행하지 마세요. 유용하다면 더 자세한 내용을 공유할 수 있습니다. --> 모든 반응 --> 죄송합니다. 오류가 발생했습니다. 로딩 중 오류가 발생했습니다. 페이지를 새로고침하세요.
miraholt31님이 2026년 7월 27일에 댓글을 남겼습니다. 링크 복사 .html) - notes-seen.json에 기록되어 버전당 한 번만 실행됩니다 - 오프라인일 때 조용히 닫히며, CI또는MYNETWORK_NOTES=0` 상태에서는 전혀 작동하지 않습니다. 이것은 동일한 업데이트 후 릴리스입니다.