summary refs log tree commit diff stats
path: root/results/classifier/015/semantic-x86/gitlab_semantic_blsmsk
blob: 356e7fcb9de1a5ccb902865c1747c940d782eb4b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
x86: 0.997
semantic: 0.987
architecture: 0.935
assembly: 0.879
i386: 0.871
device: 0.743
graphic: 0.735
ppc: 0.729
operating system: 0.627
vnc: 0.612
socket: 0.607
mistranslation: 0.603
boot: 0.585
register: 0.568
alpha: 0.543
kernel: 0.521
arm: 0.512
risc-v: 0.501
debug: 0.428
permissions: 0.370
network: 0.366
files: 0.340
PID: 0.289
performance: 0.268
TCG: 0.254
VMM: 0.231
virtual: 0.185
KVM: 0.163
peripherals: 0.134
hypervisor: 0.067
user-level: 0.028

x86 BLSMSK semantic bug
Description of problem
The result of instruction BLSMSK is different with from the CPU. The value of CF is different.

Steps to reproduce

Compile this code

void main() {
    asm("mov rax, 0x65b2e276ad27c67");
    asm("mov rbx, 0x62f34955226b2b5d");
    asm("blsmsk eax, ebx");
}

Execute and compare the result with the CPU.

CPU

CF = 0


QEMU

CF = 1

Additional information
This bug is discovered by research conducted by KAIST SoftSec.