Skip to content

Commit d51fc81

Browse files
committed
1503: Document retroactive attack risks and limitations
1 parent a0fd8aa commit d51fc81

1 file changed

Lines changed: 44 additions & 18 deletions

File tree

content/2025-07-06-build-1503.md

Lines changed: 44 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
author: Arne Babenhauserheide
33
layout: content
4-
title: Freenet / Hyphanet build 1503: fix vulnerability and visibility, add animated webp, convenience, and optimization
4+
title: Freenet / Hyphanet build 1502/1503: fix vulnerability and visibility, add animated webp, convenience, and optimization
55
date: 2025-02-22
66
categories: release
77
---
@@ -15,33 +15,59 @@ is a hotfix release that fixes regressions in 1502. The main changes are:
1515

1616
<div style="float: right; width: 30%; max-width: 300px;"><img src="./theme/images/logo-large.png" width="100%" style="filter: invert(30%)" /></div>
1717

18-
- fixed vulnerability and reduce visibility on the network
18+
- fixed vulnerability
19+
- reduce visibility on the network
1920
- support animated webp and more modern HTML and CSS
20-
- enable direct linking to Freemail
21+
- enable direct linking to Freemail’s “New Message” page
2122
- dismiss alerts and convenience
2223
- substantial routing optimizations
2324
- fixes
2425

25-
## vulnerability and visibility
26+
## mitigated vulnerability
2627

2728
The most important change is a fix to a vulnerability that enabled
2829
attackers to differentiate between an uploading and a forwarding node
29-
by analyzing the structure of packets in blocks. It was reported
30-
responsibly by *Yonghuan Xu* and depended on block-level timing of
31-
packet handling.
30+
by analyzing the structure of packets in blocks.
3231

33-
Thank you very much for reporting the vulnerability and creating and
34-
testing a mitigation!
32+
The vulnerability enabled two attacks: one active and one passive.
33+
The active one could be exploited by depending on precise block-level
34+
timing of packet handling, forcing the node to expose if it was the
35+
original uploader of a file. The passive one worked by analyzing the
36+
packet structure inside blocks.
37+
38+
While the active attack is completely mitigated, the passive attack
39+
could be done retroactively if an attacker had already recorded the
40+
full transmitted data on sub-block level.
41+
42+
The attack has two limitations: it requires matching individual CHKs
43+
to keys, for example by downloading the key of the file at least once;
44+
this risk is highest for CHKs of known files and for
45+
re-uploads. And it requires a direct connection: it does not work
46+
against pure friend-to-friend mode when your friends are trustworthy.
47+
48+
This vulnerability was reported responsibly by *Xu Yonghuan*. Thank
49+
you very much for the report and for creating and testing a
50+
mitigation!
51+
52+
### fix regression: thread leak
3553

3654
1503 fixed a thread leak from our adaption of the vulnerability
37-
mitigation that caused very fast nodes to restart within a few days,
38-
because the number of waiting threads exceeded the thread limit.
39-
Thanks to bertm for finding a minimally invasive solution and max_iops
40-
for reporting the problem and testing fixes!
55+
mitigation that caused very fast nodes to overload and slow down after
56+
a few days, because the number of waiting threads exceeded the thread
57+
limit. Don’t wait for zero, for it is infinite.
58+
59+
Thanks to bertm for finding a minimally invasive solution and
60+
max_iops for reporting the problem and testing fixes!
61+
62+
## visibility reduction and interface fixes
4163

4264
There were some additional privacy and safety improvements: do not
4365
check reachability of global addresses to avoid a fallback to Echo
44-
packets when a node does not support Ping, don’t show download to disk
66+
packets when a node does not support Ping. These packets were a
67+
regression from 1498 due to a fallback in the platform address
68+
checking when Ping is disabled.
69+
70+
And don’t show download to disk
4571
for large file page on public gateway nodes, and make fproxy cross
4672
origin isolated -- the latter by torusrxxx.
4773

@@ -63,8 +89,8 @@ visited again. Thanks to torusrxxx!
6389

6490
## link to freemail
6591

66-
Also Freemail now allows inbound links with to=WOT_ID, so you can use
67-
links on Freesites that directly open in Freemail.
92+
Freemail now allows inbound links to “/Freemail/NewMessage?to=\<WoT ID>”,
93+
so you can use links on Freesites that directly open in Freemail.
6894

6995
## dismiss alerts and convenience
7096

@@ -82,7 +108,7 @@ nodes with many peers and make it easier to run simple routing nodes
82108
(without messaging) on weak, cheap, energy conserving hardware:
83109

84110
- Fix synchronization of receive buffer -- #1044 by ArneBab. Thanks to
85-
Yonguan Xu for the catch!
111+
Xu Yonghuan for the catch!
86112
- Do not synchronize on global variable in CryptoKey.fingerprint --
87113
#1066 by bertm
88114
- Do not synchronize on access to AEADCryptBucket.readOnly -- #1065 by
@@ -124,7 +150,7 @@ And internal code fixes:
124150
- Fix single-byte read() in various InputStream implementations --
125151
#1058 by bertm
126152

127-
And improvements to the code to ease maintenance:
153+
And improvements to the code to ease maintenance:
128154

129155
- 🐛 Allow Class Loader to Enumerate Directory Entries. Fixes Flyway
130156
usage -- #1049 by Bombe

0 commit comments

Comments
 (0)