Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
318 changes: 318 additions & 0 deletions ANONYMOUS_ACCESS_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,318 @@
# TNT ๅŒฟๅ่ฎฟ้—ฎไธŽ้•ฟๆœŸ็จณๅฎšๆ€ง - ๅฎŒๆˆๆ€ป็ป“

## ๐Ÿ“‹ ไปปๅŠกๅฎŒๆˆๆƒ…ๅ†ต

โœ… **ๆ‰€ๆœ‰ไปปๅŠกๅทฒๅฎŒๆˆๅนถๆต‹่ฏ•้€š่ฟ‡**

### 1. โœ… ๆฃ€ๆŸฅๆ‰€ๆœ‰ๅˆ†ๆ”ฏไปฃ็ ๅ’Œๅฝ“ๅ‰ๅฎž็Žฐ
- ๅฎกๆŸฅไบ†ๆ‰€ๆœ‰ๅฎ‰ๅ…จไฟฎๅคๅˆ†ๆ”ฏ๏ผˆfix/auth-protection, fix/buffer-security็ญ‰๏ผ‰
- ็กฎ่ฎคๆ‰€ๆœ‰ๅˆ†ๆ”ฏๅทฒๅˆๅนถๅˆฐ feat/security-audit-fixes
- ๅˆ†ๆžไบ†SSHๆœๅŠกๅ™จ็š„่ฎค่ฏๆœบๅˆถ

### 2. โœ… ็กฎไฟSSHๅŒฟๅ่ฎฟ้—ฎๆ”ฏๆŒ๏ผˆๆ— ๅฏ†็ /ๅฏ†้’ฅ่ฆๆฑ‚๏ผ‰
**ๅฎž็Žฐ็Šถๆ€๏ผšๅฎŒ็พŽๆ”ฏๆŒ**

ๅฝ“ๅ‰ๅฎž็Žฐๅ…่ฎธ๏ผš
- โœ… ไปปๆ„็”จๆˆทๅ่ฟžๆŽฅ
- โœ… ไปปๆ„ๅฏ†็ ๏ผˆๅŒ…ๆ‹ฌ็ฉบๅฏ†็ ๏ผ‰
- โœ… ๆ— ้œ€SSHๅฏ†้’ฅ
- โœ… ๆ— ้œ€้ข„ๅ…ˆๆณจๅ†Œ
- โœ… ๅฎŒๅ…จๅŒฟๅ่ฎฟ้—ฎ

**ๆต‹่ฏ•็ป“ๆžœ๏ผš**
```
โœ“ Test 1 PASSED: Can connect with any password
โœ“ Test 2 PASSED: Can connect with empty password
```

### 3. โœ… ไผ˜ๅŒ–็”จๆˆทไฝ“้ชŒๅ’Œ้™ไฝŽไฝฟ็”จ้—จๆง›
**ๆ–ฐๅขžๅ†…ๅฎน๏ผš**

1. **ๆฌข่ฟŽๆถˆๆฏไผ˜ๅŒ–** (src/ssh_server.c)
- ๆทปๅŠ ๅŒ่ฏญๆฌข่ฟŽไฟกๆฏ๏ผˆไธญๆ–‡/English๏ผ‰
- ๆ˜Ž็กฎ่ฏดๆ˜Ž่ฟ™ๆ˜ฏๅŒฟๅ่Šๅคฉๅฎค
- ๆ็คบ็”จๆˆทๅๅฏ็•™็ฉบ

2. **EASY_SETUP.md** (NEW)
- ๅฎŒๆ•ด็š„ไธญ่‹ฑๆ–‡ๅฟซ้€Ÿ้ƒจ็ฝฒๆŒ‡ๅ—
- ไธ€้”ฎๅฎ‰่ฃ…่ฏดๆ˜Ž
- ็”จๆˆท่ฟžๆŽฅ่ฏดๆ˜Ž๏ผˆ้›ถ้—จๆง›๏ผ‰
- ๅธธ่ง้—ฎ้ข˜่งฃ็ญ”

3. **README.mdๆ›ดๆ–ฐ**
- ๆทปๅŠ ๅŒฟๅ่ฎฟ้—ฎ่ฏดๆ˜Ž
- ๅผบ่ฐƒ้›ถ้—จๆง›็‰นๆ€ง
- ้“พๆŽฅๅˆฐๅฟซ้€ŸๆŒ‡ๅ—

**็”จๆˆทไฝ“้ชŒ๏ผš**
```bash
# ็”จๆˆท่ฟžๆŽฅ๏ผˆ้›ถ้…็ฝฎ๏ผ‰
ssh -p 2222 your.server.ip
# ่พ“ๅ…ฅไปปๆ„ๅ†…ๅฎนๆˆ–็›ดๆŽฅๆŒ‰ๅ›ž่ฝฆ
# ๅผ€ๅง‹่Šๅคฉ๏ผ
```

### 4. โœ… ๅขžๅผบ้•ฟๆœŸ็จณๅฎš่ฟ่กŒ่ƒฝๅŠ›
**็จณๅฎšๆ€งๆ”น่ฟ›๏ผš**

1. **systemdๆœๅŠกๅขžๅผบ** (tnt.service)
- ่‡ชๅŠจ้‡ๅฏๆœบๅˆถ๏ผˆRestart=always๏ผ‰
- ้‡ๅฏ้™ๆต้˜ฒๆญขๆ•…้šœๅพช็Žฏ
- ่ต„ๆบ้™ๅˆถ๏ผˆๆ–‡ไปถๆ่ฟฐ็ฌฆใ€่ฟ›็จ‹ๆ•ฐ๏ผ‰
- ๅฎ‰ๅ…จๅŠ ๅ›บ๏ผˆNoNewPrivileges, ProtectSystem็ญ‰๏ผ‰
- ไผ˜้›…ๅ…ณ้—ญ๏ผˆ30็ง’่ถ…ๆ—ถ๏ผ‰

2. **ๆ—ฅๅฟ—่ฝฎ่ฝฌ** (scripts/logrotate.sh)
- ่‡ชๅŠจๆ—ฅๅฟ—่ฝฎ่ฝฌ๏ผˆ้ป˜่ฎค100MB๏ผ‰
- ไฟ็•™ๆœ€่ฟ‘10,000ๆกๆถˆๆฏ
- ่‡ชๅŠจๅŽ‹็ผฉๆ—งๆ—ฅๅฟ—
- ๆธ…็†ๅކๅฒๅค‡ไปฝ๏ผˆไฟ็•™ๆœ€่ฟ‘5ไธช๏ผ‰

3. **ๅฅๅบทๆฃ€ๆŸฅ** (scripts/healthcheck.sh)
- ่ฟ›็จ‹ๅญ˜ๆดปๆฃ€ๆŸฅ
- ็ซฏๅฃ็›‘ๅฌๆฃ€ๆŸฅ
- SSH่ฟžๆŽฅๆต‹่ฏ•
- ๆ—ฅๅฟ—ๆ–‡ไปถ็Šถๆ€
- ๅ†…ๅญ˜ไฝฟ็”จ็ปŸ่ฎก

4. **่‡ชๅŠจๅŒ–็ปดๆŠค** (scripts/setup_cron.sh)
- ๆฏๆ—ฅๅ‡Œๆ™จ3็‚น่‡ชๅŠจๆ—ฅๅฟ—่ฝฎ่ฝฌ
- ๆฏ5ๅˆ†้’Ÿๅฅๅบทๆฃ€ๆŸฅ
- cronไปปๅŠก่‡ชๅŠจ้…็ฝฎ

**ๆต‹่ฏ•็ป“ๆžœ๏ผš**
```
โœ“ Process check: TNT process is running (PID: 25239)
โœ“ Port check: Port 2223 is listening
โœ“ SSH connection successful
โœ“ Log file: 132K
โœ“ Memory usage: 7.8 MB
โœ“ Health check passed
```

### 5. โœ… ๅ…จ้ขๆต‹่ฏ•ๆ‰€ๆœ‰ๅŠŸ่ƒฝ
**ๆต‹่ฏ•ๅฅ—ไปถ๏ผš**

1. **ๅฎ‰ๅ…จๅŠŸ่ƒฝๆต‹่ฏ•** (test_security_features.sh)
- ่ฎค่ฏไฟๆŠคๅ’Œ้™ๆต
- ่พ“ๅ…ฅ้ชŒ่ฏ๏ผˆ็”จๆˆทๅใ€UTF-8ใ€็‰นๆฎŠๅญ—็ฌฆ๏ผ‰
- ็ผ“ๅ†ฒๅŒบๆบขๅ‡บไฟๆŠค๏ผˆASAN้ชŒ่ฏ๏ผ‰
- ๅนถๅ‘ๅฎ‰ๅ…จๆ€ง๏ผˆTSAN้ชŒ่ฏ๏ผ‰
- ่ต„ๆบ็ฎก็†๏ผˆๅคงๆ—ฅๅฟ—ใ€ๅคš่ฟžๆŽฅ๏ผ‰

**็ป“ๆžœ๏ผš10/10 PASSED** โœ…

2. **ๅŒฟๅ่ฎฟ้—ฎๆต‹่ฏ•** (test_anonymous_access.sh)
- ไปปๆ„ๅฏ†็ ่ฟžๆŽฅๆต‹่ฏ•
- ็ฉบๅฏ†็ ่ฟžๆŽฅๆต‹่ฏ•

**็ป“ๆžœ๏ผš2/2 PASSED** โœ…

3. **ๅฅๅบทๆฃ€ๆŸฅๆต‹่ฏ•**
- ๆ‰€ๆœ‰ๆฃ€ๆŸฅ้กน้€š่ฟ‡

**็ป“ๆžœ๏ผšPASSED** โœ…

### 6. โœ… ไธบๅ„ๅˆ†ๆ”ฏๅˆ›ๅปบPRๅˆๅนถๅˆฐmain
**PR็Šถๆ€๏ผš**
- โœ… PR #8 ๅทฒๅˆ›ๅปบ๏ผšhttps://github.com/m1ngsama/TNT/pull/8
- ๐Ÿ“‹ ๆ ‡้ข˜๏ผšfeat: Comprehensive Security Fixes & Anonymous Access Enhancement
- ๐Ÿ“Š ็ปŸ่ฎก๏ผš+2,356 ่กŒ, -76 ่กŒ
- ๐Ÿ”– ๅŒ…ๅซๆ‰€ๆœ‰ๅฎ‰ๅ…จไฟฎๅคๅ’ŒๅŒฟๅ่ฎฟ้—ฎๆ”น่ฟ›

## ๐Ÿ“ฆ ไบคไป˜ๅ†…ๅฎน

### ๆ–ฐๅขžๆ–‡ไปถ
1. **EASY_SETUP.md** - ไธญ่‹ฑๆ–‡ๅฟซ้€Ÿ้ƒจ็ฝฒๆŒ‡ๅ—
2. **scripts/healthcheck.sh** - ๅฅๅบท็›‘ๆŽง่„šๆœฌ
3. **scripts/logrotate.sh** - ๆ—ฅๅฟ—่ฝฎ่ฝฌ่„šๆœฌ
4. **scripts/setup_cron.sh** - ่‡ชๅŠจๅŒ–็ปดๆŠค้…็ฝฎ
5. **test_anonymous_access.sh** - ๅŒฟๅ่ฎฟ้—ฎๆต‹่ฏ•ๅฅ—ไปถ
6. **ANONYMOUS_ACCESS_SUMMARY.md** - ๆœฌๆ–‡ๆกฃ

### ไฟฎๆ”นๆ–‡ไปถ
1. **src/ssh_server.c** - ๅขžๅผบๆฌข่ฟŽๆถˆๆฏ
2. **README.md** - ๆทปๅŠ ๅŒฟๅ่ฎฟ้—ฎๆ–‡ๆกฃ
3. **tnt.service** - ๅขžๅผบ็จณๅฎšๆ€ง้…็ฝฎ

## ๐ŸŽฏ ๆ ธๅฟƒ็‰นๆ€ง

### ๅŒฟๅ่ฎฟ้—ฎ๏ผˆ้ป˜่ฎค้…็ฝฎ๏ผ‰
```bash
# ๆœๅŠกๅ™จ็ซฏ
tnt

# ็”จๆˆท็ซฏ๏ผˆไปปไฝ•ไบบ๏ผ‰
ssh -p 2222 server.ip
# ่พ“ๅ…ฅไปปไฝ•ๅ†…ๅฎนไฝœไธบๅฏ†็ ๆˆ–็›ดๆŽฅๅ›ž่ฝฆ
# ้€‰ๆ‹ฉๆ˜พ็คบๅ็งฐ๏ผˆๅฏ็•™็ฉบ๏ผ‰
# ๅผ€ๅง‹่Šๅคฉ๏ผ
```

### ้•ฟๆœŸ็จณๅฎšๆ€ง
- ๐Ÿ”„ ่‡ชๅŠจ้‡ๅฏ๏ผˆsystemd๏ผ‰
- ๐Ÿ“Š ๆŒ็ปญๅฅๅบท็›‘ๆŽง๏ผˆๆฏ5ๅˆ†้’Ÿ๏ผ‰
- ๐Ÿ”„ ่‡ชๅŠจๆ—ฅๅฟ—่ฝฎ่ฝฌ๏ผˆๆฏๅคฉๅ‡Œๆ™จ3็‚น๏ผ‰
- ๐Ÿ›ก๏ธ ่ต„ๆบ้™ๅˆถ้˜ฒๆญขๅดฉๆบƒ
- ๐Ÿ’พ ๅ†…ๅญ˜ๅ ็”จๅฐ๏ผˆ~8MB๏ผ‰

### ๅฎ‰ๅ…จ็‰นๆ€ง๏ผˆๅฏ้€‰๏ผ‰
```bash
# ๆทปๅŠ ่ฎฟ้—ฎๅฏ†็ ๏ผˆๆ้ซ˜ๅฎ‰ๅ…จๆ€ง๏ผ‰
TNT_ACCESS_TOKEN="secret" tnt

# ้™ๅˆถ่ฟžๆŽฅๆ•ฐ
TNT_MAX_CONNECTIONS=100 tnt

# ้™ๅˆถๆฏIP่ฟžๆŽฅๆ•ฐ
TNT_MAX_CONN_PER_IP=10 tnt

# ๅชๅ…่ฎธๆœฌๅœฐ่ฎฟ้—ฎ
TNT_BIND_ADDR=127.0.0.1 tnt
```

## ๐Ÿ“Š ๆต‹่ฏ•็ป“ๆžœๆ€ป็ป“

| ๆต‹่ฏ•็ฑปๅˆซ | ้€š่ฟ‡/ๆ€ปๆ•ฐ | ็Šถๆ€ |
|---------|----------|------|
| ๅฎ‰ๅ…จๅŠŸ่ƒฝ | 10/10 | โœ… PASSED |
| ๅŒฟๅ่ฎฟ้—ฎ | 2/2 | โœ… PASSED |
| ๅฅๅบทๆฃ€ๆŸฅ | 1/1 | โœ… PASSED |
| ็ผ–่ฏ‘ๆต‹่ฏ• | 1/1 | โœ… PASSED |
| **ๆ€ป่ฎก** | **14/14** | **โœ… ALL PASSED** |

## ๐Ÿš€ ้ƒจ็ฝฒๅปบ่ฎฎ

### ๆœ€็ฎ€ๅ•็š„้ƒจ็ฝฒ๏ผˆ้€‚ๅˆๆต‹่ฏ•๏ผ‰
```bash
# 1. ๅฎ‰่ฃ…
curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh

# 2. ่ฟ่กŒ
tnt

# 3. ็”จๆˆท่ฟžๆŽฅ
ssh -p 2222 localhost
```

### ็”Ÿไบง็Žฏๅขƒ้ƒจ็ฝฒ๏ผˆๆŽจ่๏ผ‰
```bash
# 1. ๅฎ‰่ฃ…
curl -sSL https://raw.githubusercontent.com/m1ngsama/TNT/main/install.sh | sh

# 2. ๅˆ›ๅปบไธ“็”จ็”จๆˆท
sudo useradd -r -s /bin/false tnt
sudo mkdir -p /var/lib/tnt
sudo chown tnt:tnt /var/lib/tnt

# 3. ๅฎ‰่ฃ…systemdๆœๅŠก
sudo cp tnt.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now tnt

# 4. ้…็ฝฎ่‡ชๅŠจๅŒ–็ปดๆŠค
sudo scripts/setup_cron.sh

# 5. ๅผ€ๆ”พ้˜ฒ็ซๅข™
sudo ufw allow 2222/tcp

# 6. ๆฃ€ๆŸฅ็Šถๆ€
sudo systemctl status tnt
./scripts/healthcheck.sh
```

## ๐ŸŽ“ ๆŠ€ๆœฏไบฎ็‚น

### 1. ็œŸๆญฃ็š„้›ถ้—จๆง›่ฎฟ้—ฎ
ไธ้œ€่ฆ๏ผš
- โŒ SSHๅฏ†้’ฅ้…็ฝฎ
- โŒ ็”จๆˆทๆณจๅ†Œ
- โŒ ็‰นๆฎŠSSH้€‰้กน
- โŒ ๅคๆ‚็š„ๅฎขๆˆท็ซฏ้…็ฝฎ

ๅช้œ€่ฆ๏ผš
- โœ… ๆ ‡ๅ‡†SSHๅฎขๆˆท็ซฏ
- โœ… ๆœๅŠกๅ™จๅœฐๅ€ๅ’Œ็ซฏๅฃ

### 2. ็”Ÿไบง็บง็จณๅฎšๆ€ง
- ่‡ชๅŠจๆ•…้šœๆขๅค
- ๆŒ็ปญๅฅๅบท็›‘ๆŽง
- ่‡ชๅŠจๆ—ฅๅฟ—็ฎก็†
- ่ต„ๆบ้™ๅˆถไฟๆŠค

### 3. ็ตๆดป็š„ๅฎ‰ๅ…จ้…็ฝฎ
- ้ป˜่ฎคๅฎŒๅ…จๅผ€ๆ”พ๏ผˆ้€‚ๅˆๅ…ฌๅ…ฑ่Šๅคฉ๏ผ‰
- ๅฏ้€‰ๅฏ†็ ไฟๆŠค๏ผˆ้€‚ๅˆ็งๅฏ†่Šๅคฉ๏ผ‰
- ้™ๆตๅ’Œ้˜ฒๆšดๅŠ›็ ด่งฃ
- IP้ป‘ๅๅ•ๆœบๅˆถ

## ๐Ÿ“ ๅŽ็ปญ็ปดๆŠค

### ๆ—ฅๅธธ็›‘ๆŽง
```bash
# ๆŸฅ็œ‹ๆœๅŠก็Šถๆ€
sudo systemctl status tnt

# ๆŸฅ็œ‹ๆ—ฅๅฟ—
sudo journalctl -u tnt -f

# ่ฟ่กŒๅฅๅบทๆฃ€ๆŸฅ
./scripts/healthcheck.sh

# ๆŸฅ็œ‹ๅœจ็บฟ็”จๆˆทๆ•ฐ
ssh -p 2222 localhost # ็„ถๅŽ่พ“ๅ…ฅ :list
```

### ๆ•…้šœๆŽ’ๆŸฅ
```bash
# ๆฃ€ๆŸฅ็ซฏๅฃ
sudo lsof -i:2222

# ๆฃ€ๆŸฅ่ฟ›็จ‹
ps aux | grep tnt

# ้‡ๅฏๆœๅŠก
sudo systemctl restart tnt

# ๆŸฅ็œ‹่ฏฆ็ป†ๆ—ฅๅฟ—
sudo journalctl -u tnt -n 100 --no-pager
```

## ๐ŸŽ‰ ็ป“่ฎบ

**TNT็Žฐๅœจๆ˜ฏไธ€ไธช๏ผš**
- โœ… ๅฎŒๅ…จๅŒฟๅ็š„SSH่ŠๅคฉๆœๅŠกๅ™จ
- โœ… ้›ถ้—จๆง›๏ผŒไปปไฝ•ไบบ้ƒฝ่ƒฝ่ฝปๆพไฝฟ็”จ
- โœ… ็”Ÿไบง็บง็จณๅฎš๏ผŒ้€‚ๅˆ้•ฟๆœŸ่ฟ่กŒ
- โœ… ๅ…จ้ข็š„ๅฎ‰ๅ…จ้˜ฒๆŠค
- โœ… ่‡ชๅŠจๅŒ–็ปดๆŠคๅ’Œ็›‘ๆŽง

**้€‚็”จๅœบๆ™ฏ๏ผš**
- ๐ŸŒ ๅ…ฌๅ…ฑๅŒฟๅ่ŠๅคฉๆœๅŠกๅ™จ
- ๐Ÿซ ๆ•™่‚ฒ็Žฏๅขƒ๏ผˆๅญฆ็”Ÿๆ— ้œ€้…็ฝฎ๏ผ‰
- ๐ŸŽฎ ๆธธๆˆ็คพๅŒบไธดๆ—ถ่Šๅคฉ
- ๐Ÿ’ฌ ๆดปๅŠจ็Žฐๅœบๅณๆ—ถไบคๆต
- ๐Ÿ”“ ไปปไฝ•้œ€่ฆ้›ถ้—จๆง›ไบคๆต็š„ๅœบๆ™ฏ

---

## ๐Ÿ“ž ไธ‹ไธ€ๆญฅ

1. โœ… **PRๅทฒๆไบค**๏ผš็ญ‰ๅพ…ไฝ ็š„ๆ‰‹ๅŠจmerge
- PR้“พๆŽฅ๏ผšhttps://github.com/m1ngsama/TNT/pull/8

2. โณ **MergeๅŽๅปบ่ฎฎ**๏ผš
- ๆ›ดๆ–ฐmainๅˆ†ๆ”ฏๆ–‡ๆกฃ
- ๅ‘ๅธƒๆ–ฐ็‰ˆๆœฌtag
- ๆ›ดๆ–ฐreleases้กต้ข

3. ๐Ÿš€ **ๆŽจๅนฟๅปบ่ฎฎ**๏ผš
- ๅœจREADMEไธญ็ชๅ‡บ"้›ถ้—จๆง›ๅŒฟๅ่ฎฟ้—ฎ"็‰นๆ€ง
- ๆทปๅŠ ๆ›ดๅคšไฝฟ็”จ็คบไพ‹ๅ’Œๆˆชๅ›พ
- ่€ƒ่™‘ๅˆถไฝœๆผ”็คบ่ง†้ข‘

---

**ๅˆถไฝœ่€…๏ผšClaude Code**
**ๆ—ฅๆœŸ๏ผš2026-01-22**
**็Šถๆ€๏ผšโœ… ๅ…จ้ƒจๅฎŒๆˆ๏ผŒๆต‹่ฏ•้€š่ฟ‡**
56 changes: 56 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,61 @@
# Changelog

## 2026-01-22 - Security Audit Fixes

Comprehensive security hardening addressing 23 identified vulnerabilities across 6 categories.

### Critical

- **[AUTH]** Add optional access token authentication (`TNT_ACCESS_TOKEN`)
- **[AUTH]** Implement IP-based rate limiting (10 conn/IP/60s, 5-min block after 5 auth failures)
- **[AUTH]** Add global connection limits (default: 64, configurable via `TNT_MAX_CONNECTIONS`)

### High Priority

- **[BUFFER]** Replace all `strcpy()` with `strncpy()` (3 locations)
- **[BUFFER]** Add buffer overflow checking in `client_printf()`
- **[BUFFER]** Implement UTF-8 validation to prevent malformed input and overlong encodings
- **[SSH]** Upgrade RSA key from 2048 to 4096 bits
- **[SSH]** Fix key file permission race with atomic generation (umask + temp file + rename)
- **[SSH]** Add configurable bind address (`TNT_BIND_ADDR`) and log level (`TNT_SSH_LOG_LEVEL`)
- **[CONCURRENCY]** Fix `room_broadcast()` reference counting race
- **[CONCURRENCY]** Fix `tui_render_screen()` message array TOCTOU via snapshot approach
- **[CONCURRENCY]** Fix `handle_key()` scroll position TOCTOU

### Medium Priority

- **[INPUT]** Add username validation rejecting shell metacharacters and control chars
- **[INPUT]** Sanitize message content to prevent log injection attacks
- **[INPUT]** Enhance `message_load()` with field length and timestamp validation
- **[RESOURCE]** Convert message position array from fixed 1000 to dynamic allocation
- **[RESOURCE]** Enhance `setup_host_key()` validation (size, permissions, auto-regeneration)
- **[RESOURCE]** Improve thread cleanup with proper pthread_attr and error handling

### New Environment Variables

- `TNT_ACCESS_TOKEN` - Optional password for authentication (backward compatible)
- `TNT_BIND_ADDR` - Bind address (default: 0.0.0.0)
- `TNT_SSH_LOG_LEVEL` - SSH logging verbosity 0-4 (default: 1)
- `TNT_RATE_LIMIT` - Enable/disable rate limiting (default: 1)
- `TNT_MAX_CONNECTIONS` - Max concurrent connections (default: 64)
- `TNT_MAX_CONN_PER_IP` - Max connections per IP (default: 5)

### Security Summary

| Category | Fixes | Impact |
|----------|-------|--------|
| Buffer Security | 3 | Prevents overflows, malformed UTF-8 |
| SSH Hardening | 4 | Stronger crypto, no races |
| Input Validation | 3 | Prevents injection, log poisoning |
| Resource Management | 3 | Handles large logs, prevents DoS |
| Authentication | 3 | Optional protection, rate limiting |
| Concurrency Safety | 3 | Eliminates races, crashes |
| **TOTAL** | **19** | **23 vulnerabilities fixed** |

All changes maintain backward compatibility. Server remains open by default.

---

## 2025-12-02 - Stability & Testing Update

### Fixed
Expand Down
Loading