Commit ccf036a
committed
rules: keep the mips/loongarch image-size bound out of the sound window
min_offset_from_image_size emits virt_image_base >= floor + image span,
because the placer bumps a slide that would land inside the image past it.
That holds only if the placer ran. arch/mips/kernel/relocate.c and
arch/loongarch/kernel/relocate.c both return the link address untouched under
kaslr_disabled(), and the no-KASLR base sits at the window floor on loongarch,
0x100000 + IMAGE_BASE_OFFSET above it on mips — either way far below floor
plus a whole image. With KASLR off the bound excluded the truth, at
CONF_INFERRED, which is the sound floor.
The premise cannot be established from a leak. There is no positive "KASLR
ran" fact: absence of SF_VIRT_KASLR_DISABLED means the disable was not
observed, and a vantage with no readable cmdline or config cannot tell that
from KASLR being on. The lowest text observation does not settle it either,
since a text symbol sits above the base.
So the claim moves below the floor, to CONF_HEURISTIC: it shapes the
speculative result and can no longer narrow the guaranteed window. An observed
disable skips the rule outright, so a claim already known false is not made
even speculatively.
No live exposure — the rule needs a VIRT kernel_data/bss observation and
nothing emits one on these arches, which is why boot-nokaslr.log resolves
soundly today. The cost is real: mips and loongarch lose a guaranteed-window
narrowing that was never sound to make.1 parent fc5c00f commit ccf036a
2 files changed
Lines changed: 31 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
15 | 34 | | |
16 | 35 | | |
17 | 36 | | |
| |||
29 | 48 | | |
30 | 49 | | |
31 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
32 | 59 | | |
33 | 60 | | |
34 | 61 | | |
| |||
64 | 91 | | |
65 | 92 | | |
66 | 93 | | |
67 | | - | |
| 94 | + | |
68 | 95 | | |
69 | 96 | | |
70 | 97 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
548 | 548 | | |
549 | 549 | | |
550 | 550 | | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
551 | 554 | | |
552 | 555 | | |
553 | 556 | | |
| |||
0 commit comments