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

ASAN: global-buffer-overflow in Sys_var_typelib::Sys_var_typelib on MDEV-36290 branch on server startup

    XMLWordPrintable

Details

    • Not for Release Notes
    • Q4/2025 Server Maintenance

    Description

      A simple ./bin/mariadbd exec on an UB+ASAN build for the current main-MDEV-36290 branch will yield:

      MDEV-36290 CS 12.2 b2acd0bdab200f6ed29f88d8b1ac2911e2f5773f (Debug, UBASAN, Clang 21.1.3-20250923) Build 10/10/2025

      ==3676882==ERROR: AddressSanitizer: global-buffer-overflow on address 0x5d377cd91338 at pc 0x5d377a0da33a bp 0x7ffc9e9db070 sp 0x7ffc9e9db068
      READ of size 8 at 0x5d377cd91338 thread T0
          #0 0x5d377a0da339 in Sys_var_typelib::Sys_var_typelib(char const*, char const*, int, long, CMD_LINE, enum_mysql_show_type, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*) /test/main-MDEV-36290_dbg_san/sql/sys_vars.inl:329:28
          #1 0x5d377a0d2e5b in Sys_var_set::Sys_var_set(char const*, char const*, int, long, unsigned long, CMD_LINE, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*) /test/main-MDEV-36290_dbg_san/sql/sys_vars.inl:1525:7
          #2 0x5d377a0f9d7c in Sys_var_on_access_global<Sys_var_set, (privilege_t)17179869184>::Sys_var_on_access_global(char const*, char const*, int, long, unsigned long, CMD_LINE, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*) /test/main-MDEV-36290_dbg_san/sql/sys_vars.inl:129:15
          #3 0x5d377a0f9d7c in __cxx_global_var_init.680 /test/main-MDEV-36290_dbg_san/sql/sys_vars.cc:3736:5
          #4 0x5d377a0f9d7c in _GLOBAL__sub_I_sys_vars.cc /test/main-MDEV-36290_dbg_san/sql/sys_vars.cc
          #5 0x774d2842a303 in call_init csu/../csu/libc-start.c:145:3
          #6 0x774d2842a303 in __libc_start_main csu/../csu/libc-start.c:347:5
          #7 0x5d377875f714 in _start (/test/MDEV-36290_UBASAN_MD101025-mariadb-12.2.0-linux-x86_64-dbg/bin/mariadbd+0x3aeb714) (BuildId: 63161e0b1d2f6babc7d107b82b859a7fdf070717)
       
      0x5d377cd91338 is located 40 bytes before global variable 'replicate_events_marked_for_skip_names' defined in '/test/main-MDEV-36290_dbg_san/sql/sys_vars.cc:3779' (0x5d377cd91360) of size 32
      0x5d377cd91338 is located 0 bytes after global variable 'slave_type_conversions_name' defined in '/test/main-MDEV-36290_dbg_san/sql/sys_vars.cc:3732' (0x5d377cd91320) of size 24
      SUMMARY: AddressSanitizer: global-buffer-overflow /test/main-MDEV-36290_dbg_san/sql/sys_vars.inl:329:28 in Sys_var_typelib::Sys_var_typelib(char const*, char const*, int, long, CMD_LINE, enum_mysql_show_type, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*)
      Shadow bytes around the buggy address:
        0x5d377cd91080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x5d377cd91100: 00 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 00 f9 f9 f9
        0x5d377cd91180: 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 00 00 00 00
        0x5d377cd91200: f9 f9 f9 f9 00 00 00 00 f9 f9 f9 f9 00 f9 f9 f9
        0x5d377cd91280: 00 00 00 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
      =>0x5d377cd91300: f9 f9 f9 f9 00 00 00[f9]f9 f9 f9 f9 00 00 00 00
        0x5d377cd91380: f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9 00 00 00 00
        0x5d377cd91400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x5d377cd91480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x5d377cd91500: f9 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 00 00 00
        0x5d377cd91580: 00 00 00 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
      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
      ==3676882==ABORTING
      

      MDEV-36290 CS 12.2 b2acd0bdab200f6ed29f88d8b1ac2911e2f5773f (Optimized, UBASAN, Clang 21.1.3-20250923) Build 10/10/2025

      ==3823342==ERROR: AddressSanitizer: global-buffer-overflow on address 0x587c888ddd38 at pc 0x587c85eda80f bp 0x7ffd67ef57b0 sp 0x7ffd67ef57a8
      READ of size 8 at 0x587c888ddd38 thread T0
          #0 0x587c85eda80e in Sys_var_typelib::Sys_var_typelib(char const*, char const*, int, long, CMD_LINE, enum_mysql_show_type, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*) /test/main-MDEV-36290_opt_san/sql/sys_vars.inl:329:28
          #1 0x587c85ed457b in Sys_var_set::Sys_var_set(char const*, char const*, int, long, unsigned long, CMD_LINE, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*) /test/main-MDEV-36290_opt_san/sql/sys_vars.inl:1525:7
          #2 0x587c85efa082 in Sys_var_on_access_global<Sys_var_set, (privilege_t)17179869184>::Sys_var_on_access_global(char const*, char const*, int, long, unsigned long, CMD_LINE, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*) /test/main-MDEV-36290_opt_san/sql/sys_vars.inl:129:15
          #3 0x587c85efa082 in __cxx_global_var_init.671 /test/main-MDEV-36290_opt_san/sql/sys_vars.cc:3736:5
          #4 0x587c85efa082 in _GLOBAL__sub_I_sys_vars.cc /test/main-MDEV-36290_opt_san/sql/sys_vars.cc
          #5 0x77cb9382a303 in call_init csu/../csu/libc-start.c:145:3
          #6 0x77cb9382a303 in __libc_start_main csu/../csu/libc-start.c:347:5
          #7 0x587c84564b54 in _start (/test/MDEV-36290_UBASAN_MD101025-mariadb-12.2.0-linux-x86_64-opt/bin/mariadbd+0x2f20b54) (BuildId: 9fddd00b320456763f71ff04905b301244bc9ebb)
       
      0x587c888ddd38 is located 40 bytes before global variable 'replicate_events_marked_for_skip_names' defined in '/test/main-MDEV-36290_opt_san/sql/sys_vars.cc:3779' (0x587c888ddd60) of size 32
      0x587c888ddd38 is located 0 bytes after global variable 'slave_type_conversions_name' defined in '/test/main-MDEV-36290_opt_san/sql/sys_vars.cc:3732' (0x587c888ddd20) of size 24
      SUMMARY: AddressSanitizer: global-buffer-overflow /test/main-MDEV-36290_opt_san/sql/sys_vars.inl:329:28 in Sys_var_typelib::Sys_var_typelib(char const*, char const*, int, long, CMD_LINE, enum_mysql_show_type, char const**, unsigned long long, PolyLock*, sys_var::binlog_status_enum, bool (*)(sys_var*, THD*, set_var*), bool (*)(sys_var*, THD*, enum_var_type), char const*)
      Shadow bytes around the buggy address:
        0x587c888dda80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x587c888ddb00: 00 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 00 f9 f9 f9
        0x587c888ddb80: 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 00 00 00 00
        0x587c888ddc00: f9 f9 f9 f9 00 00 00 00 f9 f9 f9 f9 00 f9 f9 f9
        0x587c888ddc80: 00 00 00 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
      =>0x587c888ddd00: f9 f9 f9 f9 00 00 00[f9]f9 f9 f9 f9 00 00 00 00
        0x587c888ddd80: f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9 00 00 00 00
        0x587c888dde00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x587c888dde80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x587c888ddf00: f9 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 00 00 00
        0x587c888ddf80: 00 00 00 f9 f9 f9 f9 f9 00 00 00 00 00 f9 f9 f9
      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
      ==3823342==ABORTING
      

      Attachments

        Issue Links

          Activity

            People

              bnestere Brandon Nesterenko
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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