gsd-2023-52630
Vulnerability from gsd
Modified
2024-03-07 06:01
Details
In the Linux kernel, the following vulnerability has been resolved: blk-iocost: Fix an UBSAN shift-out-of-bounds warning When iocg_kick_delay() is called from a CPU different than the one which set the delay, @now may be in the past of @iocg->delay_at leading to the following warning: UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23 shift exponent 18446744073709 is too large for 64-bit type 'u64' (aka 'unsigned long long') ... Call Trace: <TASK> dump_stack_lvl+0x79/0xc0 __ubsan_handle_shift_out_of_bounds+0x2ab/0x300 iocg_kick_delay+0x222/0x230 ioc_rqos_merge+0x1d7/0x2c0 __rq_qos_merge+0x2c/0x80 bio_attempt_back_merge+0x83/0x190 blk_attempt_plug_merge+0x101/0x150 blk_mq_submit_bio+0x2b1/0x720 submit_bio_noacct_nocheck+0x320/0x3e0 __swap_writepage+0x2ab/0x9d0 The underflow itself doesn't really affect the behavior in any meaningful way; however, the past timestamp may exaggerate the delay amount calculated later in the code, which shouldn't be a material problem given the nature of the delay mechanism. If @now is in the past, this CPU is racing another CPU which recently set up the delay and there's nothing this CPU can contribute w.r.t. the delay. Let's bail early from iocg_kick_delay() in such cases.
Aliases



{
  "gsd": {
    "metadata": {
      "exploitCode": "unknown",
      "remediation": "unknown",
      "reportConfidence": "confirmed",
      "type": "vulnerability"
    },
    "osvSchema": {
      "aliases": [
        "CVE-2023-52630"
      ],
      "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-iocost: Fix an UBSAN shift-out-of-bounds warning\n\nWhen iocg_kick_delay() is called from a CPU different than the one which set\nthe delay, @now may be in the past of @iocg-\u003edelay_at leading to the\nfollowing warning:\n\n  UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23\n  shift exponent 18446744073709 is too large for 64-bit type \u0027u64\u0027 (aka \u0027unsigned long long\u0027)\n  ...\n  Call Trace:\n   \u003cTASK\u003e\n   dump_stack_lvl+0x79/0xc0\n   __ubsan_handle_shift_out_of_bounds+0x2ab/0x300\n   iocg_kick_delay+0x222/0x230\n   ioc_rqos_merge+0x1d7/0x2c0\n   __rq_qos_merge+0x2c/0x80\n   bio_attempt_back_merge+0x83/0x190\n   blk_attempt_plug_merge+0x101/0x150\n   blk_mq_submit_bio+0x2b1/0x720\n   submit_bio_noacct_nocheck+0x320/0x3e0\n   __swap_writepage+0x2ab/0x9d0\n\nThe underflow itself doesn\u0027t really affect the behavior in any meaningful\nway; however, the past timestamp may exaggerate the delay amount calculated\nlater in the code, which shouldn\u0027t be a material problem given the nature of\nthe delay mechanism.\n\nIf @now is in the past, this CPU is racing another CPU which recently set up\nthe delay and there\u0027s nothing this CPU can contribute w.r.t. the delay.\nLet\u0027s bail early from iocg_kick_delay() in such cases.",
      "id": "GSD-2023-52630",
      "modified": "2024-03-07T06:01:45.196389Z",
      "schema_version": "1.4.0"
    }
  },
  "namespaces": {
    "cve.org": {
      "CVE_data_meta": {
        "ASSIGNER": "cve@kernel.org",
        "ID": "CVE-2023-52630",
        "STATE": "PUBLIC"
      },
      "affects": {
        "vendor": {
          "vendor_data": [
            {
              "product": {
                "product_data": [
                  {
                    "product_name": "Linux",
                    "version": {
                      "version_data": [
                        {
                          "version_affected": "\u003c",
                          "version_name": "5160a5a53c0c",
                          "version_value": "9f56f3833117"
                        },
                        {
                          "version_value": "not down converted",
                          "x_cve_json_5_version_data": {
                            "defaultStatus": "affected",
                            "versions": [
                              {
                                "status": "affected",
                                "version": "5.10"
                              },
                              {
                                "lessThan": "5.10",
                                "status": "unaffected",
                                "version": "0",
                                "versionType": "custom"
                              },
                              {
                                "lessThanOrEqual": "5.10.*",
                                "status": "unaffected",
                                "version": "5.10.210",
                                "versionType": "custom"
                              },
                              {
                                "lessThanOrEqual": "5.15.*",
                                "status": "unaffected",
                                "version": "5.15.149",
                                "versionType": "custom"
                              },
                              {
                                "lessThanOrEqual": "6.1.*",
                                "status": "unaffected",
                                "version": "6.1.78",
                                "versionType": "custom"
                              },
                              {
                                "lessThanOrEqual": "6.6.*",
                                "status": "unaffected",
                                "version": "6.6.17",
                                "versionType": "custom"
                              },
                              {
                                "lessThanOrEqual": "6.7.*",
                                "status": "unaffected",
                                "version": "6.7.5",
                                "versionType": "custom"
                              },
                              {
                                "lessThanOrEqual": "*",
                                "status": "unaffected",
                                "version": "6.8",
                                "versionType": "original_commit_for_fix"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              },
              "vendor_name": "Linux"
            }
          ]
        }
      },
      "data_format": "MITRE",
      "data_type": "CVE",
      "data_version": "4.0",
      "description": {
        "description_data": [
          {
            "lang": "eng",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-iocost: Fix an UBSAN shift-out-of-bounds warning\n\nWhen iocg_kick_delay() is called from a CPU different than the one which set\nthe delay, @now may be in the past of @iocg-\u003edelay_at leading to the\nfollowing warning:\n\n  UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23\n  shift exponent 18446744073709 is too large for 64-bit type \u0027u64\u0027 (aka \u0027unsigned long long\u0027)\n  ...\n  Call Trace:\n   \u003cTASK\u003e\n   dump_stack_lvl+0x79/0xc0\n   __ubsan_handle_shift_out_of_bounds+0x2ab/0x300\n   iocg_kick_delay+0x222/0x230\n   ioc_rqos_merge+0x1d7/0x2c0\n   __rq_qos_merge+0x2c/0x80\n   bio_attempt_back_merge+0x83/0x190\n   blk_attempt_plug_merge+0x101/0x150\n   blk_mq_submit_bio+0x2b1/0x720\n   submit_bio_noacct_nocheck+0x320/0x3e0\n   __swap_writepage+0x2ab/0x9d0\n\nThe underflow itself doesn\u0027t really affect the behavior in any meaningful\nway; however, the past timestamp may exaggerate the delay amount calculated\nlater in the code, which shouldn\u0027t be a material problem given the nature of\nthe delay mechanism.\n\nIf @now is in the past, this CPU is racing another CPU which recently set up\nthe delay and there\u0027s nothing this CPU can contribute w.r.t. the delay.\nLet\u0027s bail early from iocg_kick_delay() in such cases."
          }
        ]
      },
      "generator": {
        "engine": "bippy-b4257b672505"
      },
      "problemtype": {
        "problemtype_data": [
          {
            "description": [
              {
                "lang": "eng",
                "value": "n/a"
              }
            ]
          }
        ]
      },
      "references": {
        "reference_data": [
          {
            "name": "https://git.kernel.org/stable/c/9f56f38331171c9a19754004f0664686d67ee48d",
            "refsource": "MISC",
            "url": "https://git.kernel.org/stable/c/9f56f38331171c9a19754004f0664686d67ee48d"
          },
          {
            "name": "https://git.kernel.org/stable/c/1e4d3f8bd880e02932a9ea179f90bfa74fd2e899",
            "refsource": "MISC",
            "url": "https://git.kernel.org/stable/c/1e4d3f8bd880e02932a9ea179f90bfa74fd2e899"
          },
          {
            "name": "https://git.kernel.org/stable/c/e5dc63f01e027721c29f82069f7e97e2149fa131",
            "refsource": "MISC",
            "url": "https://git.kernel.org/stable/c/e5dc63f01e027721c29f82069f7e97e2149fa131"
          },
          {
            "name": "https://git.kernel.org/stable/c/27b216130e64651e76ed583742a1b4e4d08a67c3",
            "refsource": "MISC",
            "url": "https://git.kernel.org/stable/c/27b216130e64651e76ed583742a1b4e4d08a67c3"
          },
          {
            "name": "https://git.kernel.org/stable/c/cd33b330cb21675189e747953845f5c3689e4912",
            "refsource": "MISC",
            "url": "https://git.kernel.org/stable/c/cd33b330cb21675189e747953845f5c3689e4912"
          },
          {
            "name": "https://git.kernel.org/stable/c/2a427b49d02995ea4a6ff93a1432c40fa4d36821",
            "refsource": "MISC",
            "url": "https://git.kernel.org/stable/c/2a427b49d02995ea4a6ff93a1432c40fa4d36821"
          }
        ]
      }
    },
    "nvd.nist.gov": {
      "cve": {
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nblk-iocost: Fix an UBSAN shift-out-of-bounds warning\n\nWhen iocg_kick_delay() is called from a CPU different than the one which set\nthe delay, @now may be in the past of @iocg-\u003edelay_at leading to the\nfollowing warning:\n\n  UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23\n  shift exponent 18446744073709 is too large for 64-bit type \u0027u64\u0027 (aka \u0027unsigned long long\u0027)\n  ...\n  Call Trace:\n   \u003cTASK\u003e\n   dump_stack_lvl+0x79/0xc0\n   __ubsan_handle_shift_out_of_bounds+0x2ab/0x300\n   iocg_kick_delay+0x222/0x230\n   ioc_rqos_merge+0x1d7/0x2c0\n   __rq_qos_merge+0x2c/0x80\n   bio_attempt_back_merge+0x83/0x190\n   blk_attempt_plug_merge+0x101/0x150\n   blk_mq_submit_bio+0x2b1/0x720\n   submit_bio_noacct_nocheck+0x320/0x3e0\n   __swap_writepage+0x2ab/0x9d0\n\nThe underflow itself doesn\u0027t really affect the behavior in any meaningful\nway; however, the past timestamp may exaggerate the delay amount calculated\nlater in the code, which shouldn\u0027t be a material problem given the nature of\nthe delay mechanism.\n\nIf @now is in the past, this CPU is racing another CPU which recently set up\nthe delay and there\u0027s nothing this CPU can contribute w.r.t. the delay.\nLet\u0027s bail early from iocg_kick_delay() in such cases."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: blk-iocost: corrige una advertencia de desplazamiento fuera de los l\u00edmites de UBSAN Cuando se llama a iocg_kick_delay() desde una CPU diferente a la que estableci\u00f3 el retraso, @now puede estar en el pasado de @iocg-\u0026gt;delay_at genera la siguiente advertencia: UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23 el exponente de desplazamiento 18446744073709 es demasiado grande para el tipo \u0027u64\u0027 de 64 bits ( tambi\u00e9n conocido como \u0027unsigned long long\u0027) ... Seguimiento de llamadas:  dump_stack_lvl+0x79/0xc0 __ubsan_handle_shift_out_of_bounds+0x2ab/0x300 iocg_kick_delay+0x222/0x230 ioc_rqos_merge+0x1d7/0x2c0 __rq_qos_merge+0x2c/0x80 bio _intento_back_merge+0x83/0x190 blk_attempt_plug_merge+0x101/ 0x150 blk_mq_submit_bio+0x2b1/0x720 submit_bio_noacct_nocheck+0x320/0x3e0 __swap_writepage+0x2ab/0x9d0 El subdesbordamiento en s\u00ed no afecta realmente el comportamiento de ninguna manera significativa; sin embargo, la marca de tiempo anterior puede exagerar la cantidad de retraso calculada m\u00e1s adelante en el c\u00f3digo, lo que no deber\u00eda ser un problema material dada la naturaleza del mecanismo de retraso. Si @now est\u00e1 en el pasado, esta CPU est\u00e1 compitiendo con otra CPU que recientemente configur\u00f3 el retraso y no hay nada que esta CPU pueda contribuir con el retraso. Salgamos temprano de iocg_kick_delay() en tales casos."
          }
        ],
        "id": "CVE-2023-52630",
        "lastModified": "2024-04-02T12:50:42.233",
        "metrics": {},
        "published": "2024-04-02T07:15:40.667",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/1e4d3f8bd880e02932a9ea179f90bfa74fd2e899"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/27b216130e64651e76ed583742a1b4e4d08a67c3"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2a427b49d02995ea4a6ff93a1432c40fa4d36821"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/9f56f38331171c9a19754004f0664686d67ee48d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/cd33b330cb21675189e747953845f5c3689e4912"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e5dc63f01e027721c29f82069f7e97e2149fa131"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Awaiting Analysis"
      }
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...