priyanshukumar397/Auditor-portfolio
GitHub: priyanshukumar397/Auditor-portfolio
展示了一位智能合约审计员与应用安全研究员的技术成果与审计案例,填补了链上安全评估的实践空白。
Stars: 0 | Forks: 0
# Ishwar Kumar
智能合约审计员 | 应用程序安全研究员
[Twitter](https://x.com/Ravenzbb) |
[Github](https://github.com/priyanshukumar397) |
[LinkedIn](https://in.linkedin.com/in/ishwar-kumar-214341284) |
[Hackenproof](https://hackenproof.com/hackers/5hax) |
[Email](mailto:231b145@juetguna.in)
## 发现
## | 协议名称 | 平台 | 报告漏洞总数 | 高 | 中 | 低 |
|---------------------|------------|---------------------|------|-----|-----|
| OrderBook | Codehawks | 2 | 1 | 0 | 1 |
| Beatland Festival | Codehawks | 4 | 1 | 1 | 2 |
| Last Man Standing | Codehawks | 2 | 0 | 2 | 0 |
| **总计** | Codehawks | **8** | **2**|**3**|**3**|
## 智能合约工作
### OrderBook 审计 — Codehawks 第一飞行 #43
* 日期:2025年7月3日至10日
* 范围:217 nSLOC
* 角色:独立审计员
* 排名:全球前25
* 比赛:[https://codehawks.cyfrin.io/c/2025-07-orderbook](https://codehawks.cyfrin.io/c/2025-07-orderbook)
* 排行榜:[https://codehawks.cyfrin.io/c/2025-07-orderbook/results?lt=contest&page=3&sc=xp&sj=reward&t=leaderboard](https://codehawks.cyfrin.io/c/2025-07-orderbook/results?lt=contest&page=3&sc=xp&sj=reward&t=leaderboard)
* 完整报告:[Reports](https://codehawks.cyfrin.io/c/2025-07-orderbook/results?lt=contest&page=1&sc=xp&sj=reward&t=report)
#### L-01. 过期订单无法被任何人取消(设计缺陷)
**根本原因 + 影响**
通常情况下,一旦订单过期(超过截止日期),应该可以移除订单并将代币返还给卖家,从而释放存储空间并防止资金被锁定。当前的实现仅允许原始卖家取消其过期订单。如果卖家变得不活跃或失去访问权限,任何人都无法取消该过期订单,导致代币被锁定在合约中并造成永久的存储膨胀。
```
function cancelSellOrder(uint256 _orderId) public {
Order storage order = orders[_orderId];
if (order.seller == address(0)) revert OrderNotFound();
if (order.seller != msg.sender) revert NotOrderSeller();
if (!order.isActive) revert OrderAlreadyInactive();
order.isActive = false;
IERC20(order.tokenToSell).safeTransfer(order.seller, order.amountToSell);
emit OrderCancelled(_orderId, order.seller);
}
```
**风险**
* 可能性*: 高,由于卖家随时间推移可能不活跃
* 影响*: 代币永久锁定 + 气体/存储膨胀
**PoC**
```
orderBook.createSellOrder(...); // seller loses access
// time passes...
orderBook.cancelSellOrder(orderId); // reverts for anyone except seller
```
**缓解措施**
```
- if (order.seller != msg.sender) revert NotOrderSeller();
+ if (order.seller != msg.sender && block.timestamp < order.deadlineTimestamp) revert NotOrderSeller();
```
这允许任何人取消过期订单并将代币返还给卖家。
#### L-02. 未初始化的局部变量导致订单详情中的代币符号为空
**根本原因 + 影响**
`getOrderDetailsString()` 函数旨在显示订单数据,包括代币符号,但 `tokenSymbol` 被声明后从未初始化。这导致字符串始终返回空的代币字段。
```
function getOrderDetailsString(uint256 _orderId) external view returns (string memory) {
Order memory order = orders[_orderId];
string memory tokenSymbol; // uninitialized
string memory status;
if (!order.isActive) {
status = "Cancelled";
} else if (order.isActive && block.timestamp >= order.deadlineTimestamp) {
status = "Expired";
} else if (block.timestamp < order.deadlineTimestamp) {
status = "Active";
}
return string(abi.encodePacked(
"Order ID: ", Strings.toString(_orderId),
", Token: ", tokenSymbol,
", Amount: ", Strings.toString(order.amountToSell),
", Price: ", Strings.toString(order.priceInUSDC),
", Status: ", status,
", Deadline: ", Strings.toString(order.deadlineTimestamp)
));
}
```
**PoC**
```
string memory details = orderBook.getOrderDetailsString(1);
// Output: Token field is empty
```
**缓解措施**
```
string memory tokenSymbol = "UNKNOWN";
try IERC20Metadata(order.tokenToSell).symbol() returns (string memory symbol) {
if (bytes(symbol).length > 0) {
tokenSymbol = symbol;
}
} catch {
tokenSymbol = Strings.toHexString(uint160(order.tokenToSell), 20);
}
```
这确保了即使 `symbol()` 失败也能输出有意义的内容。
## Beatland Festival 协议审计 — Codehawks
- **日期:**2025年7月15日至22日
- **范围:**283 nSLOC
- **角色:**独立审计员
- **排名:**全球前17
- **比赛:**[Beatland Festival Codehawks 页面](https://codehawks.cyfrin.io/c/2025-07-beatland-festival)
- **提交的完整报告:**
- [高危](https://codehawks.cyfrin.io/c/2025-07-beatland-festival/s/231)
- [中危](https://codehawks.cyfrin.io/c/2025-07-beatland-festival/s/26)
## Last Man Standing 协议审计 — Codehawks
- **排名:**全球前92
- **比赛:**([Last Man Standing 页面](https://codehawks.cyfrin.io/c/2025-07-last-man-standing))
- **提交的完整报告:**
- [中危](https://codehawks.cyfrin.io/c/2025-07-last-man-standing/s/275)
- [中危](https://codehawks.cyfrin.io/c/2025-07-last-man-standing/s/276)
### 平台漏洞 — Cyfrin Codehawks
* 报告了 Codehawks 网络平台的一个漏洞
[Acknowledged by Patrick Collions Sir](https://x.com/Ravenzbb/status/1946099361525710992)
* 在比赛期间负责任地披露。
### 排行榜
* 在 Codehawks 上排名第 [23 位](https://codehawks.cyfrin.io/leaderboard?page=3&r=1-month&sc=reward&sj=reward&t=contests),位于 2025 年 7 月 Top 100 比赛类别中
### 工作经验
* 在 Kann Audits 实习(2 周:Solidity)
* 在 Chain Defenders 实习
* 完成 1 次与 Pashov Audit Group 的审计
### 认证
* Cyfrin Web3 [钱包安全精通课程](https://profiles.cyfrin.io/u/ishwar/achievements/web3-wallet-security-basics)
* 来自 [Cyfrin Updraft](https://x.com/Ravenzbb/status/1959620066691203111) 的区块链基础课程
## 应用程序安全工作
* 报告了以下平台的漏洞:Airtel、NASA、DRDO、Huawei、Nykaa、Blackberry、Siemens 等
* 平台:Bugcrowd、HackerOne、Hackenproof、TryHackMe
* 发布的 CVE:CVE-2025-25758、CVE-2025-25688、CVE-2025-25595
* 入选 NCIIPC 2024 年 1 月通讯(Top 15 安全研究员)
* Google Hacking Database dork:[https://www.exploit-db.com/ghdb/8105](https://www.exploit-db.com/ghdb/8105)
* AIR 2(FOSSx India,IIT Bombay)
* BlackHat Asia Bugcrowd CTF 排名:143
* TenguCon Japan 2024 演讲者
* BSides Bloomington USA 2024 CFP 已被接受
标签:C++, CMS安全, Codehawks 审计, Crypto 安全, DeFi 安全, ETH 安全, JavaScript, OrderBook 审计, Python, Solidity 安全, Streamlit, Web3 安全, 云安全监控, 区块链安全, 反取证, 合约漏洞, 存储安全, 安全研究员, 安全评估, 审计工具, 审计报告, 应用安全研究, 数据擦除, 无后门, 智能合约安全, 智能合约审计, 杀软绕过, 漏洞审计, 漏洞披露, 网络安全, 设计缺陷, 访问控制, 隐私保护, 静态分析, 高可用性