이번 주 보안: Git Deep Dive, Mailchimp 및 SPF

이번 주 보안: Git Deep Dive, Mailchimp 및 SPF

소스 노드 : 1910203

먼저, 자식이 감사되었습니다. 이것은 오픈 소스 프로젝트의 보안을 개선하기 위해 노력하는 비영리 단체인 오픈 소스 기술 개선 기금(OSTIF)이 후원하는 노력이었습니다. 감사 자체는 X41 및 GitLab의 연구원이 수행했으며, 치명적인 취약점 XNUMX개 발견, 둘 다 동일한 나쁜 코딩 습관으로 인해 발생합니다. int 버퍼 길이를 유지합니다.

최신 시스템에서는 size_t 항상 부호가 없으며 아키텍처 비트 폭과 동일한 비트 길이입니다. 시스템에서 최대 주소 지정 가능 메모리까지 길이를 처리할 때 오버플로가 발생하지 않도록 보장되므로 문자열 및 버퍼 길이에 적합한 데이터 유형입니다. 한편, int 일반적으로 길이가 2바이트이고 부호가 있으며 최대값은 31^1-2147483647 또는 2(약 XNUMXGB)입니다. 큰 버퍼이지만 전례 없는 양의 데이터는 아닙니다. git에 그렇게 큰 것을 던지면 예상치 못한 방식으로 깨질 것입니다.

첫 번째 예는 CVE-2022-23521로, int 마이너스로 넘칩니다. ㅏ .gitattributes 수정된 git 클라이언트를 사용하여 파일을 리포지토리에 커밋한 다음 해당 리포지토리를 체크아웃하면 num_attrs 넘칠 변수. 오버플로를 작은 음수로 밀어 넣으면 git은 속성 버퍼를 크게 과소 할당하고 할당된 버퍼의 끝을 지나 모든 데이터를 씁니다.

CVE-2022-41903은 또 다른 부호 있는 정수 오버플로입니다. 이번에는 예쁜 인쇄 형식이 남용되어 예상치 못한 작업을 수행합니다. 이 코드 블록을 살펴보십시오.

 int sb_len = sb->len, offset = 0; if (c->flush_type == flush_left) offset = padding - len; else if (c->flush_type == flush_both) offset = (padding - len) / 2; /* * we calculate padding in columns, now * convert it back to chars */ padding = padding - len + local_sb.len; strbuf_addchars(sb, ' ', padding); memcpy(sb->buf + sb_len + offset, local_sb.buf, local_sb.len);

익스플로잇 형식은 다음과 같습니다. %>(2147483647)%a%>(2147483646)%x41, 여기서 위의 코드는 모든 패딩 인스턴스에 대해 실행됩니다(The %>(#) 블록) 형식에서 찾을 수 있습니다. 이 코드를 통해 처음으로 (2^31)-1 공백을 출력 문자열 앞에 추가합니다. 이 숫자는 XNUMX바이트 부호 있는 정수의 최대값입니다. 그러나 위의 코드 블록은 다른 시간에 실행되고 한 번 더 텍스트가 버퍼에 추가되어 길이가 최대 정수 값을 초과합니다. 해당 블록의 첫 번째 줄은 다음에서 암시적 캐스트를 수행합니다. size_tint, 설정 sb_len 음수 값으로.

그런 다음 memcpy() 요구, sb->buf 버퍼의 시작에 대한 포인터이고, sb_len은 오버플로된 큰 음수이고, offset은 사용자가 제어하는 ​​값입니다. 보내는 목적지의 위치를 ​​의미합니다. memcpy() 의도하지 않게 의도한 버퍼의 시작보다 낮은 메모리 위치로 설정할 수 있습니다. 공격자가 쓰기를 제어합니다. 이 텍스트 블록에 몇 가지 디버깅 printf() 문을 추가하고 테스트 케이스를 실행합니다.

$ ./bin-wrappers/git log -1 --pretty="format:%>(2147483647)%a%>(2147483635)%s" >/dev/null
Padding: 2147483647
sb_len: 0
offset: 2147483647
Memcpy: Padding: 2147483635
sb_len: -2147483647
offset: 2147483591
Memcpy: CI: upgrade to macos-12, and pin OSX version
=================================================================
==844038==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7fd8989f97c8 at pc 0x7fdb15e49d21 bp 0x7ffe8fa5c100 sp 0x7ffe8fa5b8b0
WRITE of size 44 at 0x7fd8989f97c8 thread T0
0x7fd8989f97c8 is located 56 bytes to the left of 4831838268-byte region [0x7fd8989f9800,0x7fd9b89f983c)

출력의 첫 번째 XNUMX중주는 최대 int long이 되도록 패딩이 있는 로그 라인을 프라이밍하는 설정입니다. 두 번째 XNUMX중주는 버퍼 오버런입니다. 여기서 sb_len 음수로 설정한 다음 오프셋에 추가하여 버퍼 시작에서 왼쪽으로 56바이트 위치를 제공합니다. 해당 위치에 인쇄되는 내용은 이 경우입니다. %s, 커밋의 제목 줄로 대체됩니다. 길이는 44바이트입니다. 저자는 이러한 소프트웨어 제품군이 사용자 제어 예쁜 문자열을 호출할 수 있는 git archive 명령을 실행하기 때문에 "git forge", AKA GitHub 및 GitLab에 대해 무기화할 수 있다고 제안합니다.

수정 사항은 8월 2200일에 git 소스 코드에 푸시되었지만 해당 수정 사항이 포함된 새 릴리스를 이제 사용할 수 있습니다. 약 XNUMX개의 원시 인스턴스가 있습니다. int 다음과 같은 재미있는 해킹을 사용하더라도 정리하는 데 시간이 걸립니다. cast_size_t_to_int(), 2GB 이상인 경우 프로그램을 종료하는 인라인 함수 size_t 처리됩니다. 업데이트하러 가세요!

Mailchimp — 다시

Mailchimp의 사람들은 휴식을 취할 수 없는 것 같습니다. 공격자가 내부 관리 도구에 다시 한 번 액세스했습니다., WooCommerce를 포함하여 133개의 고객 계정이 노출되었습니다. Mailchimp가 작년에 사회 공학 또는 피싱 공격에 빠진 것은 이번이 세 번째이며 매번 최종 사용자에게 스피어 피싱 이메일이 전송되었습니다. 따라서 Mailchimp 메일링 목록에 있는 경우 다음에 관련 이메일이 도착할 때 이 위반 사항을 염두에 두십시오. (편집자 주: Hackaday의 두 개의 뉴스레터는 Mailchimp를 사용하며, 우리는 알림을 받지 않았으므로 우리는 괜찮다고 생각합니다.)

로얄 메일 랜섬웨어

어떤 큰 결과를 가져올 수 있는 이야기에서, 영국의 Royal Mail이 랜섬웨어 공격을 받았습니다. 국제 우편을 처리하기 위한 시스템에서. 이 공격은 러시아어를 사용하는 랜섬웨어 갱으로 의심되는 그룹인 Lockbit 랜섬웨어를 사용합니다. 실제 정부 기관에 대한 공격은 기업에 대한 공격보다 훨씬 더 심각하기 때문에 이는 중요할 수 있습니다. Lockbit은 서비스형 랜섬웨어로 실행되기 때문에 누가 실제로 공격을 했는지 정확히 판단하기가 매우 어렵습니다. 현재 권장 사항은 간단합니다. 국제 우편을 보내지 마십시오. 돈.

SPF 레코드 스캔

[Sebastian Salla]는 이상한 취미로 여겨질 수 있는 것을 가지고 있습니다. 이상한 구성 오류에 대한 SPF 레코드 스캔. 그의 최근 모험에서 그 스캔은 가장 많이 방문한 상위 3만 도메인이었습니다. 그리고 잘못된 구성이 발견되었습니다.

하지만 잠시만요, SPF가 무엇이며 왜 우리가 관심을 가져야 할까요? 발신자 정책 프레임워크는 도메인 DNS 레코드의 일부인 txt 레코드입니다. 그리고 해당 도메인에 대해 이메일을 보낼 수 있도록 실제로 승인된 IP 주소를 지정합니다. 따라서 수신 이메일이 유효한 SPF 레코드가 있는 도메인에서 온 것으로 주장하고 발신 IP 주소가 해당 레코드에 없는 경우 실제로는 주장된 도메인에서 온 것이 아닙니다.

SPF 문제로 인해 도메인의 이메일이 거부되는 것은 사기를 치는 가장 확실한 방법 중 하나입니다. 그래서 SPF 레코드를 좀 더 ... *자유롭게* 만들려는 유혹이 있습니다. 그리고 이것의 가장 극단적인 반복은 +all SPF 레코드에 저장하고 완료하십시오. 물론, 귀하의 도메인을 사용하는 모든 스패머가 실제로 실제 이메일을 보내고 있다고 전 세계에 알리지만 적어도 상사의 발신 이메일은 다시 작동합니다. XNUMX개가 넘는 도메인이 SPF로 설정됨 +all, 분명히 그것은 예상보다 더 일반적인 결함입니다.

정말 흥미로운 부분은 여러 미국 정부 기관, 전 세계의 다른 정부 도메인 및 여러 대학과 같이 잘못 구성된 도메인의 누가 누구인가입니다. 가장 흥미로운 것은 SPF 기록이 -all+all 약 4개월 전.

비트 및 바이트

Tailscale은 다른 클라이언트의 노드 ID를 알면 공격자가 자신의 테일넷에 노드를 추가할 수 있는 잠재적으로 심각한 문제를 발견했습니다. 이렇게 하면 공격자가 VPN 내부에 들어가게 되었을 것입니다. 확실히 나쁜 시나리오입니다. 그러나 갈퀴를 받기 전에 취약한 코드는 수정되기까지 11개월도 채 걸리지 않았습니다. 이달 12일 비공개 보도돼 XNUMX일 수정됐다. 그리고 공격은 Tailscale이 스캔할 수 있는 로그 서명을 남기고 개념 증명 테스트에 격리된 것으로 결론을 내렸습니다. 확인을 위해 자체 테일넷에서 공유되는 모든 노드에 대한 자체 대시보드를 확인할 수 있습니다. 고약한 취약점이지만 이를 공개한 Tailscale에게는 좋습니다. 많은 공급업체가 이 문제에 대해 앉아서 공개하지 않았을 것입니다.

XNUMXD덴탈의 Linux 커널에 버퍼 오버플로가 발생했습니다. Netfilter 코드에서 버퍼 오버플로우로 인해 데이터가 유출되고 코드가 실행될 수 있습니다. 원격 악용 경로는 없지만 위에 링크된 이메일에는 로컬 권한 에스컬레이션을 위한 전체 PoC가 포함되어 있습니다. 그리고 커널 악용이 당신의 일이라면 Google의 Project Zero는 주제에 대한 새로운 글, null 역 참조에 관한 모든 것.

그리고 Zoho의 ManageEngine을 사용하는 경우 CVE-2022-47966을 수정하는 릴리스로 업데이트하지 않은 경우 머리가 불타고 있을 수 있습니다. 연구원 Horizon3는 패치를 리버스 엔지니어링했습니다., 이 RCE에 콩을 쏟았습니다. 부분적으로는 제품의 일부로 패키징된 매우 오래된 라이브러리 때문에 SAML 싱글 사인온이 구현되는 방식에 문제가 있습니다. 실행하기 매우 쉬운 익스플로잇이므로 해당 설치를 다시 확인해야 합니다!

타임 스탬프 :

더보기 해킹 하루