목록전체 글 (88)
Tyojong
주요 프로젝트 구조https://github.com/openai/codex/tree/main/codex-rscodex-rs/├── cli/ CLI 명령행 진입점├── tui/ 터미널 UI와 사용자 입력├── core/ Agent loop와 핵심 상태 관리├── protocol/ 내부 이벤트와 API용 데이터 타입├── exec/ 비대화형 codex exec├── app-server/ 외부 클라이언트와 연결되는 서버 계층└── ... 실행 흐름최상위 구조체 MultitoolClihttps://github.com/openai/codex/blob/main/codex..
개요대상 제품: Language Servers for AWS (1.69.0 미만 버전) 취약점 유형: CWE-61 (UNIX Symbolic Link Following) 위험도: High (CVSS v3.1: 7.8 / CVSS v4.0: 8.5) 에이전트가 프로젝트 워크스페이스에 존재하는 심볼릭 링크 파일을 일반 파일로 오인해 승인 없이 수정하고, 그 결과 링크가 가리키는 워크스페이스 외부의 민감 파일까지 변경할 수 있는 취약점이다. 공격자가 /home/user/.ssh/authorized_keys파일로 심볼릭 링크를 설정한 악성파일이 들어간 프로젝트를 깃허브에 올리면 사용자가 검토없이 agent에게 "이 프로젝트 읽어보고 환결설정 해줘"등의 프롬프트를 주었을 때 실제로 /home/user/.ssh/a..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
문제 설명 코드 분석10년의 timeLock변수와 초기 공급 토큰 수, 유저에 대한 변수가 있다. 컨트랙트 배포 시 다량의 토큰을 인자로 받은 사용자에게 지급한다. lockTokens modifier는 msg.sender가 player와 동일한지 확인하고 동일하면 timestamp를 검증한다. (block의 timestamp가 10년이 지났는지 검증)transfer함수는 lockTokens에서 검증한 후 토큰을 전송한다. 익스플로잇msg.sender와 player가 다르다면 timestamp검증을 우회할 수 있을 것이라 생각해 공격 컨트랙트에서 호출하면 될 것이라 생각할 수 있지만 transfer함수는 msg.sender의 토큰을 _to인자에게 전송하기 때문에 공격컨트랙트의 토큰을 전송하게 되는 과정이 ..
문제 설명 코드 분석1번째 modifier는 msg.sender와 tx.origin이 달라야 한다. 즉, 사용자가 직접 호출하는 것이 아닌 컨트랙트를 거쳐서 호출해야한다. assembly는 solidity 안에서 직접 EVM 명령어를 쓰게 해주는 구문이다. 이렇게 하면 solidity 기본 함수로는 불가능한 저수준 정보도 얻을 수 있다.caller()는 assembly 문법에서 사용하는 함수로 msg.sender처럼 호출자의 주소를 가져온다.2번째 modifier는 호출자 주소에 배포된 코드의 크기를 가져오고 코드의 크기가 0인지 검사한다. 즉, 1번째 modifier에 의해 컨트랙트의 주소가 caller에 들어가는데 그 컨트랙트의 코드 크기가 0이 되어야 한다. abi.encodePacked는 여러 값..