Good god, imagine this bit flip happened *anywhere else*, like in the
page tables, or in the code or data or stack of chrome, or basically
*anywhere*

Shall we change them all?

Shall we change the compiler to not allow checks like this?

Shall we wait for a compiler diff from you?

p...@delphinusdns.org wrote:

> >Synopsis:    can we resist agains bit flipping?
> >Category:    system
> >Environment:
>       System      : OpenBSD 7.2
>       Details     : OpenBSD 7.2 (GENERIC.MP) #2: Thu Nov 24 23:53:03 MST 2022
>                        
> r...@syspatch-72-arm64.openbsd.org:/usr/src/sys/arch/arm64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.arm64
>       Machine     : arm64
> >Description:
>       https://en.wikipedia.org/wiki/Single-event_upset
> 
>       A single event upset gave someone in belgium who was in a poll, 4096
>       extra votes.  When I think about this bit flip and look at the kernel
>       code for an ultra secure operating system there is not much stopping
>       someone to try an attack during a cosmic storm or increased solar
>       activity.  Perhaps a bit flips somewhere in the CPU or RAM?
> 
> pjp@polarstern$ grep sourceroute ip_input.c
> int     ip_dosourceroute = 0;
>                         if (!ip_dosourceroute) {
>         if (!ip_dosourceroute)
>                     &ip_dosourceroute);
> 
>       Like here.  As you know someone found something last week if this were
> enabled.  But the way this check is.  It doesn't check for the low bit set to
> one but it checks for the inverted value, so if the 12th bit was flipped in a
> solar storm ip_dosourceroute would now be 4096.  And the system would be wide
> open.
> 
> >How-To-Repeat:
>       Hackers probably check the weather report like 
>       https://spaceweather.com/ for increased solar activity and then fill
>       the CPU caches with attempts to get a bit flip happening.  The odds
>       aren't in their favour but who knows they may get lucky. 
> >Fix:
>       I propose all these variables to be monitored occasionally with a CRC
> check and if there is a bit flip happening to unset it to the right value.
> This is a lot of work but may be worth it.  OpenBSD would never be faring to
> space right?  I have no code but trying to think around how to do this.
> 
> 
> dmesg:
> cut
> 

Reply via email to