Recentemente, molte schede madri che supportano skylake o kabylake, hanno ricevuto un aggiornamento uefi descritto come aggiornamento per la sicurezza del microcodice cpu per un errore specifico di Intel, descritto da Intel come:
Short Loops Which Use AH/BH/CH/DH Registers May Cause Unpredictable System Behavior.
Under complex micro-architectural conditions, short loops of less than 64 instructions that use AH, BH, CH or DH registers as well as their corresponding wider register (e.g. RAX, EAX or AX for AH) may cause unpredictable system behavior. This can only happen when both logical processors on the same physical processor are active.
 Intel emette errate frequenti della cpu che possono causare denial of service, ma in questo caso, il produttore non ha creato un aggiornamento uefi specifico per ognuna di esse. 
Certo, ho provato il seguente codice su diversi core logici che non bloccano nulla  (non capisco se tutti e 8 i registri devono essere coinvolti per far scattare il bug o solo uno di essi è sufficiente)  : 
48 ba ff 00 00 00 04    movabs $0x4000000ff,%rdx
00 00 00
.L5:
48 89 d0                movq    %rdx,%rax
48 2d fe 00 00 00       subq    $0xfe,%rax
08 f4                   orb     %dh,%ah
48 89 c3                movq    %rax,%rbx
48 81 eb fe 00 00 00    subq    $0xfe,%rbx
08 e7                   orb     %ah,%bh
48 89 d9                movq    %rbx,%rcx
48 81 e9 fe 00 00 00    subb    $0xfe,%rcx
08 fd                   orb     %bh,%ch
48 89 ca                movq    %rcx,%rdx
48 81 ea fe 00 00 00    subq    $0xfe,%rdx
08 ee                   orb     %ch,%dh
48 85 cb                test   %rcx,%rbx
75 cc                   jne    .L5
movq    %rcx, %rdx
movq    %rbx, %rax
movq    %rax, %rsi
leaq    .LC0(%rip), %rdi
movl    $0, %eax
call    printf@PLT
 Quindi   unpredictable system behavior    implica l'esecuzione di codice remoto  (ad esempio perché tali loop propagano la modifica del registro all'altro thread in esecuzione sullo stesso core) ? 
 Inoltre, che tipo di loop può attivare il bug? La semplice modifica di alcuni dei registri coinvolti in meno di 64 istruzioni attiva l'errore?  I loop devono essere diversi (voglio dire che i thread non dovrebbero usare lo stesso codice) ? 
  Almeno può essere possibile avere un codice Ocaml di esempio che può attivare il bug ? 
Come sapere se un microcode vulnerabile viene utilizzato durante l'esecuzione di qemu-kvm? (qemu -cpu host nasconde il numero di revisione del microcode)