Skip to content

feat: validate ticket IDs to prevent path traversal and invalid branch names #200

@erishforG

Description

@erishforG

Problem

티켓 ID가 검증 없이 브랜치명, 파일시스템 경로, API 호출에 직접 사용됨.

  • ../../etc 같은 입력 시 path traversal 위험
  • 공백, 특수문자 포함 시 비정상 브랜치명 생성
  • manager.rs:101에서 format!("{}{}", branch_prefix, ticket) 으로 직접 결합

Solution

fn validate_ticket_id(ticket: &str) -> Result<()> {
    if ticket.is_empty() || ticket.contains('/') || ticket.contains('\\') || ticket.contains("..") {
        anyhow::bail!("invalid ticket ID '{}'", ticket);
    }
    Ok(())
}

start, ship, merge 등 진입점에서 호출

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions