Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-41182

MariaDB Server use-after-poison when ST_AsGeoJSON parses malformed POINT geometry inside a stored procedure

    XMLWordPrintable

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Critical
    • Resolution: Unresolved
    • 10.11, 11.4, 11.8, 12.3, 13.0, 13.1.1
    • 10.11, 11.4, 11.8, 12.3, 13.0
    • GIS, Stored routines
    • 13.1.0-MariaDB-asan with AddressSanitizer enabled
      Source revision: b2a8c2234dbc276fe3947633c9ffea454badf48f
      Build: ASAN
      OS: Linux 6.6.98-40.6.tl4.x86_64
    • Can result in hang or crash

    Description

      POC:

      CREATE DATABASE IF NOT EXISTS t1;
      USE t1;
       
      DROP PROCEDURE IF EXISTS t2;
       
      DELIMITER $$
       
      CREATE PROCEDURE t2()
      BEGIN
        DECLARE t3 LONGTEXT;
       
        SELECT ST_AsGeoJSON(x'000000000101000000') INTO t3;
        SELECT t3 AS t4;
      END$$
       
      DELIMITER ;
       
      CALL t2();
       
      SELECT 't6' AS t5;
       
      DROP PROCEDURE IF EXISTS t2;
      DROP DATABASE IF EXISTS t1;
      
      

      asan report:
      =================================================================
      ==1==ERROR: AddressSanitizer: use-after-poison on address 0x52500031a530 at pc 0x567ed0dbe78c bp 0x714d2e218300 sp 0x714d2e2182f8
      READ of size 8 at 0x52500031a530 thread T12
      ==1==WARNING: invalid path to external symbolizer!
      ==1==WARNING: Failed to use and restart external symbolizer!
      #0 0x567ed0dbe78b (/usr/local/mariadb/bin/mariadbd+0x1c6478b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #1 0x567ed0dbe54a (/usr/local/mariadb/bin/mariadbd+0x1c6454a) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #2 0x567ed0db8b6e (/usr/local/mariadb/bin/mariadbd+0x1c5eb6e) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #3 0x567ed0b222f0 (/usr/local/mariadb/bin/mariadbd+0x19c82f0) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #4 0x567ed0b65f8a (/usr/local/mariadb/bin/mariadbd+0x1a0bf8a) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #5 0x567ed09a2f08 (/usr/local/mariadb/bin/mariadbd+0x1848f08) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #6 0x567ed09a3e78 (/usr/local/mariadb/bin/mariadbd+0x1849e78) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #7 0x567ed089bcd9 (/usr/local/mariadb/bin/mariadbd+0x1741cd9) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #8 0x567ecff94e02 (/usr/local/mariadb/bin/mariadbd+0xe3ae02) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #9 0x567ecffc11e2 (/usr/local/mariadb/bin/mariadbd+0xe671e2) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #10 0x567ed0092a31 (/usr/local/mariadb/bin/mariadbd+0xf38a31) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #11 0x567ed0092fa5 (/usr/local/mariadb/bin/mariadbd+0xf38fa5) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #12 0x567ed0087e45 (/usr/local/mariadb/bin/mariadbd+0xf2de45) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #13 0x567ed02b2265 (/usr/local/mariadb/bin/mariadbd+0x1158265) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #14 0x567ed025688b (/usr/local/mariadb/bin/mariadbd+0x10fc88b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #15 0x567ed0255f38 (/usr/local/mariadb/bin/mariadbd+0x10fbf38) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #16 0x567ed01b96b1 (/usr/local/mariadb/bin/mariadbd+0x105f6b1) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #17 0x567ed01af144 (/usr/local/mariadb/bin/mariadbd+0x1055144) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #18 0x567ed06d6316 (/usr/local/mariadb/bin/mariadbd+0x157c316) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #19 0x567ed06d01f5 (/usr/local/mariadb/bin/mariadbd+0x15761f5) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #20 0x567ed06d17cc (/usr/local/mariadb/bin/mariadbd+0x15777cc) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #21 0x567ed06d4fd2 (/usr/local/mariadb/bin/mariadbd+0x157afd2) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #22 0x567ecff9b721 (/usr/local/mariadb/bin/mariadbd+0xe41721) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #23 0x567ecff9f17d (/usr/local/mariadb/bin/mariadbd+0xe4517d) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #24 0x567ed01ac24d (/usr/local/mariadb/bin/mariadbd+0x105224d) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #25 0x567ed01ab919 (/usr/local/mariadb/bin/mariadbd+0x1051919) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #26 0x567ed01af0fa (/usr/local/mariadb/bin/mariadbd+0x10550fa) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #27 0x567ed01a5b4b (/usr/local/mariadb/bin/mariadbd+0x104bb4b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #28 0x567ed01a0783 (/usr/local/mariadb/bin/mariadbd+0x1046783) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #29 0x567ed01a678d (/usr/local/mariadb/bin/mariadbd+0x104c78d) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #30 0x567ed054c8cc (/usr/local/mariadb/bin/mariadbd+0x13f28cc) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #31 0x567ed054c417 (/usr/local/mariadb/bin/mariadbd+0x13f2417) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #32 0x567ed105f34b (/usr/local/mariadb/bin/mariadbd+0x1f0534b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #33 0x567ecfe3c978 (/usr/local/mariadb/bin/mariadbd+0xce2978) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #34 0x794d528f4aa3 (/lib/x86_64-linux-gnu/libc.so.6+0x9caa3) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
      #35 0x794d52981a63 (/lib/x86_64-linux-gnu/libc.so.6+0x129a63) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)

      0x52500031a530 is located 7216 bytes inside of 8192-byte region [0x525000318900,0x52500031a900)
      allocated by thread T12 here:
      #0 0x567ecfe3ee3f (/usr/local/mariadb/bin/mariadbd+0xce4e3f) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #1 0x567ed17a5910 (/usr/local/mariadb/bin/mariadbd+0x264b910) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #2 0x567ed178f97b (/usr/local/mariadb/bin/mariadbd+0x263597b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #3 0x567ed04d2971 (/usr/local/mariadb/bin/mariadbd+0x1378971) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #4 0x567ecff836e9 (/usr/local/mariadb/bin/mariadbd+0xe296e9) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #5 0x567ecff82d05 (/usr/local/mariadb/bin/mariadbd+0xe28d05) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #6 0x567ecff8243d (/usr/local/mariadb/bin/mariadbd+0xe2843d) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #7 0x567ecff8ef76 (/usr/local/mariadb/bin/mariadbd+0xe34f76) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #8 0x567ecff8ecf8 (/usr/local/mariadb/bin/mariadbd+0xe34cf8) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #9 0x567ed003e949 (/usr/local/mariadb/bin/mariadbd+0xee4949) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #10 0x567ed00431ad (/usr/local/mariadb/bin/mariadbd+0xee91ad) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #11 0x567ed01ab7de (/usr/local/mariadb/bin/mariadbd+0x10517de) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #12 0x567ed01af0fa (/usr/local/mariadb/bin/mariadbd+0x10550fa) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #13 0x567ed01a5b4b (/usr/local/mariadb/bin/mariadbd+0x104bb4b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #14 0x567ed01a0783 (/usr/local/mariadb/bin/mariadbd+0x1046783) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #15 0x567ed01a678d (/usr/local/mariadb/bin/mariadbd+0x104c78d) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #16 0x567ed054c8cc (/usr/local/mariadb/bin/mariadbd+0x13f28cc) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #17 0x567ed054c417 (/usr/local/mariadb/bin/mariadbd+0x13f2417) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #18 0x567ed105f34b (/usr/local/mariadb/bin/mariadbd+0x1f0534b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #19 0x567ecfe3c978 (/usr/local/mariadb/bin/mariadbd+0xce2978) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)

      Thread T12 created by T0 here:
      #0 0x567ecfe249c1 (/usr/local/mariadb/bin/mariadbd+0xcca9c1) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #1 0x567ed105f630 (/usr/local/mariadb/bin/mariadbd+0x1f05630) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #2 0x567ecfe8eb68 (/usr/local/mariadb/bin/mariadbd+0xd34b68) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #3 0x567ecfe8f1e8 (/usr/local/mariadb/bin/mariadbd+0xd351e8) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #4 0x567ecfe8fb48 (/usr/local/mariadb/bin/mariadbd+0xd35b48) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #5 0x567ecfe8d68c (/usr/local/mariadb/bin/mariadbd+0xd3368c) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #6 0x567ecfe84750 (/usr/local/mariadb/bin/mariadbd+0xd2a750) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      #7 0x794d528821c9 (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
      #8 0x794d5288228a (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)
      #9 0x567ecfda5e24 (/usr/local/mariadb/bin/mariadbd+0xc4be24) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)

      SUMMARY: AddressSanitizer: use-after-poison (/usr/local/mariadb/bin/mariadbd+0x1c6478b) (BuildId: abc215d3c90df40e6d8fc5489105a945a2965c6d)
      Shadow bytes around the buggy address:
      0x52500031a280: f7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x52500031a300: 00 00 f7 f7 00 00 00 00 00 00 00 00 00 00 00 00
      0x52500031a380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f7 00
      0x52500031a400: 00 f7 00 00 00 00 05 f7 f7 00 00 f7 00 00 03 f7
      0x52500031a480: f7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      =>0x52500031a500: 00 00 f7 f7 00 02[f7]00 00 00 00 00 00 00 00 f7
      0x52500031a580: 00 00 00 f7 f7 00 00 f7 00 05 f7 00 00 00 00 00
      0x52500031a600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      0x52500031a680: 00 00 00 00 00 00 00 f7 00 00 f7 00 00 00 00 00
      0x52500031a700: 00 00 00 00 00 00 00 00 02 f7 00 00 06 f7 f7 00
      0x52500031a780: 00 00 00 00 00 00 00 00 00 f7 00 f7 f7 00 00 00
      Shadow byte legend (one shadow byte represents 8 application bytes):
      Addressable: 00
      Partially addressable: 01 02 03 04 05 06 07
      Heap left redzone: fa
      Freed heap region: fd
      Stack left redzone: f1
      Stack mid redzone: f2
      Stack right redzone: f3
      Stack after return: f5
      Stack use after scope: f8
      Global redzone: f9
      Global init order: f6
      Poisoned by user: f7
      Container overflow: fc
      Array cookie: ac
      Intra object redzone: bb
      ASan internal: fe
      Left alloca redzone: ca
      Right alloca redzone: cb
      ==1==ABORTING

      Attachments

        Issue Links

          Activity

            People

              rucha174 Rucha Deodhar
              miaorp miao runpei
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 0d
                  0d
                  Remaining:
                  Remaining Estimate - 2.5d
                  2.5d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified

                  Git Integration

                    Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.