Skip to content

v0.77.4

Choose a tag to compare

@github-actions github-actions released this 03 Sep 21:56
· 29 commits to main since this release

git-ctx v0.77.4

이번 릴리스는 따옴표로 감싼 이름과 네임스페이스가 붙은 이름의 크리덴셜이 마스킹되지 않던 문제를 고칩니다. 규칙이 맨 이름만 읽었기 때문에, 설정 파일이 흔히 쓰는 표기법 두 가지가 통째로 규칙 밖에 있었습니다. 기본 서비스 포트는 계속 4747이며 기존 API·MCP 호환성을 유지합니다.

{"password": "hunter22"}는 마스킹 없이 색인되고 스니펫으로 그대로 반환됐습니다. JSON·Terraform 설정을 색인한 저장소가 있다면 이 릴리스가 그 답을 바꿉니다.

수정

따옴표 친 이름의 크리덴셜이 한 번도 마스킹되지 않았습니다

  • 대입 규칙이 맨 이름만 읽었습니다. JSON과 Terraform은 키를 따옴표로 적기 때문에, 이름과 콜론 사이에 닫는 따옴표가 끼면서 규칙이 아예 매치되지 않았습니다.
  • 그래서 {"password": "hunter22"}, "api_key" = "abcd..."는 마스킹 없이 색인됐고, 검색 결과 스니펫에도 원문 그대로 실려 나갔습니다. appsettings.json, Postman 컬렉션, Terraform 변수 파일처럼 크리덴셜이 가장 자주 적히는 형식이 전부 여기에 해당합니다.
  • 이제 여는·닫는 따옴표를 선택적으로 읽습니다. 따옴표 없는 맨 이름은 종전과 똑같이 매치됩니다.

<con:password>가 놓쳤습니다

  • XML 요소 규칙은 이름이 < 바로 뒤에 오기를 요구했습니다.
  • 그런데 이 플랫폼이 색인하는 soapUI 프로젝트, WSDL 바인딩, WebSphere·Spring 서술자는 요소에 네임스페이스 접두사를 붙여 <con:password>로 적습니다. 그 형식은 하나도 마스킹되지 않았습니다.
  • 이제 접두사를 이름과 함께 캡처하므로, 값을 치환한 뒤에도 여는 태그와 닫는 태그가 짝을 유지합니다.

대입이 아닌 인용 이름은 그대로 둡니다

  • fields["password"] = lookup(name)처럼 이름만 인용됐을 뿐 크리덴셜이 대입되지 않은 코드는 건드리지 않습니다. 따옴표를 허용하면서 과마스킹으로 넘어가지 않는지 별도 표에서 확인합니다.

검증

  • 크리덴셜 shape 표에 4건 추가 — JSON 객체, 공백이 들어간 인용 키, Terraform 대입, 네임스페이스가 붙은 XML 요소
  • 과마스킹 방지 표에 3건 추가 — 대입 없는 인용 이름이 그대로 남는지 확인
  • gofmt -l, go vet ./..., FTS5 빌드·전체 테스트 통과, contentsecurity·indexer·search는 -race도 통과
  • FTS5 빌드·태그 없는 빌드·PostgreSQL 3가지 조합 전체 단위·통합·race 테스트, 빌드 모드 교차 시험, 릴리스 데이터베이스 업그레이드 시험, 콘솔 시험

업그레이드 참고

  • 마이그레이션은 필요하지 않습니다.
  • 재색인은 저절로 일어납니다. 마스킹 리비전이 패턴에서 유도되므로, 구 규칙으로 색인된 ref는 다음 색인에서 스스로 다시 읽힙니다.
  • 이전에 크리덴셜이 그대로 실려 나가던 스니펫이 이제 마스킹되어 돌아옵니다. 그것이 이번 수정의 목적입니다.

오프라인 Docker 이미지

릴리스 자산은 아키텍처 접미사가 없는 다음 두 파일입니다.

  • git-ctx-v0.77.4.tar.gz
  • git-ctx-v0.77.4.tar.gz.sha256
sha256sum -c git-ctx-v0.77.4.tar.gz.sha256
gzip -dc git-ctx-v0.77.4.tar.gz | docker load
docker image inspect git-ctx:v0.77.4 --format '{{.Os}}/{{.Architecture}} {{.Config.User}}'

기대 결과는 linux/amd64 10001입니다. 아카이브에는 git-ctx:v0.77.4git-ctx:0.77.4 태그가 포함됩니다.

전체 변경 내역: v0.77.3...v0.77.4