git-lrc Security

May 26, 2026 ยท View on GitHub

This document answers security and procurement questions for git-lrc in concrete terms.

Quick Answers

  • Vulnerability reports: use GitHub private security reporting first; use shrijith@hexmos.com if GitHub reporting is not possible.
  • Response time: acknowledgement within 2 business days; for internally confirmed findings, triage and remediation work starts within 7 calendar days.
  • Default behavior: git-lrc runs locally as a CLI.
  • Code leaves the machine only when you submit a review or run setup/update operations that call remote APIs.
  • Review submission sends staged diff bundle data to the configured LiveReview API.
  • Local files include configuration at ~/.lrc.toml and repository-local state under $(git rev-parse --git-dir)/lrc.
  • Security scans: gitleaks, OSV scanner, govulncheck, and Semgrep run in GitHub Actions.
  • SBOM is generated and attached to release assets.

Security Contact And Response Times

Primary private reporting channel: GitHub Security Advisories for this repository.

Fallback private channel (if GitHub reporting is unavailable): shrijith@hexmos.com.

We treat security issues as high-priority work. This address is the founder's direct inbox so reports receive immediate attention.

Disclosure process:

  1. We acknowledge receipt within 2 business days.
  2. We begin triage and remediation planning within 7 calendar days for findings confirmed by our internal security review.
  3. We coordinate disclosure timing with the reporter for high-impact issues.

Please include reproduction steps, lrc version, platform, and impact.

Deployment And Runtime Model

git-lrc is a local CLI that runs on developer machines and CI systems.

Runtime modes:

  • Local-only file and git operations (diff generation, hook management, local state handling).
  • Remote API operations when review/setup/update commands are executed.

Configured API endpoint examples:

  • Local/self-hosted LiveReview API endpoint (for example localhost deployment).
  • Cloud LiveReview endpoint when users choose cloud-hosted operation.

Data Sent And Data Stored

What git-lrc Sends Over Network

EventData SentDestinationWhen It Happens
Review submissionEncoded staged diff bundle and review metadataLiveReview API /api/v1/diff-reviewWhen review command submits a review
Review pollingReview identifier and status polling requestsLiveReview API review status endpointUntil completion or timeout
Setup/auth operationsAuth and setup payloads for provisioning and API key flowsLiveReview setup/auth endpointsDuring setup and re-auth flows
Optional usage telemetryCLI usage event payloadLiveReview usage endpointAfter review completion
Self-update checks/downloadsManifest metadata and binary download requestRelease/update hosting endpointsWhen self-update command runs

What git-lrc Stores Locally

Data TypeStorageWhy
API key and connector state~/.lrc.tomlCLI authentication and connector configuration
Hook metadata and repo state$(git rev-parse --git-dir)/lrc/* and managed hook pathsHook install/uninstall and local review state
Review session/attestation metadataLocal SQLite and local filesLocal review traceability and workflow support
Update lock and pending update stateLocal update state filesSafe update staging and install flow

Data Retention

  • Local files are controlled by the user or organization running the CLI.
  • The CLI does not keep a separate long-term remote copy of submitted payloads after submission.
  • Server-side retention and model-training policy are controlled by the LiveReview server deployment and its policy settings.

AI Risks And Mitigations

AI Request Guardrails In CLI (Before Data Leaves Machine)

RiskAutomatic Handling In git-lrcWhere Implemented
Sending too much code contextCLI sends selected diff scope instead of full repository by defaultinternal/appcore/review_runtime.go, docs/LRC_README.md
Unsafe payload handlingDiff is wrapped in zip and encoded for transport in fixed request shapeinternal/reviewapi/helpers.go, internal/reviewmodel/types.go
Oversized request behaviorSize-limit paths and 413 handling are enforced in review flowinternal/appcore/review_runtime.go
Redirect-based credential leakageHTTP redirect policy restricts cross-host redirect followingnetwork/http_client.go
Insecure update transportSelf-update network paths enforce HTTPS endpointsnetwork/selfupdate_operations.go
Secret disclosure in setup errorsConnector/setup error bodies redact submitted key materialsetup/connectors.go, setup/connectors_test.go
Local credential file exposureConfig file writes use restricted permission handling and atomic write pathsstorage/files.go, storage/files_test.go

AI Response Guardrails (Where They Run)

Deep model input/output sanitization is implemented in the LiveReview service. git-lrc transports review payloads and renders results, while LiveReview applies preflight and postflight sanitization for model ingress and egress.

Service-side references:

Prompt Injection Through Code/Comments

Risk: malicious comments or diff content can influence AI output.

Current handling:

  • CLI minimizes what is sent by default (selected diff scope only).
  • Teams can point git-lrc to self-hosted LiveReview deployments to keep inference and policy enforcement in their own infrastructure.
  • LiveReview applies input and output sanitization automatically before and after model calls.

Insecure Suggestions

Risk: model output can contain insecure recommendations.

Current handling:

  • Output remains advisory and requires human review before merge.
  • Teams can enforce CI and branch protection policy in their VCS.

AI Guardrail Verification

Relevant verification references:

Automated Security Checks

WorkflowBadgeWhat It ChecksTriggerWhat It GuaranteesWhat It Does Not Guarantee
gitleaksgitleaksSecret pattern scanning in repository history/contentPull request, push, manualDetects many leaked credential patterns earlyCannot guarantee zero secret exposure or catch every custom secret format
osv-scannerosv-scannerDependency vulnerability scan using OSV databasePull request, push, manualDetects known vulnerable dependencies in scan scopeCannot detect unknown (0-day) vulnerabilities
govulncheckgovulncheckGo package vulnerability analysisPull request, push, manualDetects known Go vulnerability matchesCannot guarantee all runtime exploit paths are covered
SemgrepSemgrepStatic analysis for security patternsPull request, push, scheduled, manualDetects many common code-level security anti-patternsCannot prove absence of logic flaws or business-logic abuse
SBOMsbomSoftware bill of materials generation (Syft)Release publish, push (dependency-relevant files), manualProduces auditable component inventory for releasesDoes not by itself prove component safety

SBOM And Dependency Transparency

On release publication, SBOM JSON artifacts are generated and uploaded to release assets for dependency audit and procurement review.

Security Refactor Evidence (Storage And Network Split)

git-lrc completed a large code organization refactor that separates local persistence logic and outbound HTTP logic into dedicated modules.

Why this matters:

  1. File and SQLite operations are reviewed in one inventory for local data-at-rest risk.
  2. Outbound HTTP operations are reviewed in one inventory for data-in-transit risk.
  3. Changes to storage or network behavior can be audited by checking status docs during code review.

Known Limits

  • Automated scanners reduce risk but do not guarantee absence of vulnerabilities.
  • If git-lrc points to a remote LiveReview deployment, review payloads are transmitted to that deployment.
  • Data retention and model-training settings are determined by the selected LiveReview server deployment.

Supported Versions

Security fixes are prioritized on currently supported, actively maintained releases. Upgrade to the latest release to receive the most recent security improvements.

Where To Verify