Уязвимость обхода ограничений директив "//go:cgo_" через использование директивы "//line" в Go
Описание
Директивы строк (//line
) могут использоваться для обхода ограничений на директивы //go:cgo_
, что позволяет передавать запрещенные флаги компоновщика и компилятора во время компиляции. Это может привести к неожиданному выполнению произвольного кода при запуске команды go build
.
Для эксплуатации данной уязвимости требуется указать абсолютный путь к файлу, содержащему директиву, что значительно усложняет её использование.
Тип уязвимости
- Обход ограничений
- Выполнение произвольного кода
Ссылки
- Patch
- Issue TrackingPatch
- Mailing ListRelease Notes
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Vendor Advisory
- Third Party Advisory
- Third Party Advisory
- Patch
- Issue TrackingPatch
- Mailing ListRelease Notes
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Mailing ListThird Party Advisory
- Vendor Advisory
- Third Party Advisory
- Third Party Advisory
Уязвимые конфигурации
Одно из
Одно из
EPSS
8.1 High
CVSS3
Дефекты
Связанные уязвимости
Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.
Line directives ("//line") can be used to bypass the restrictions on "//go:cgo_" directives, allowing blocked linker and compiler flags to be passed during compilation. This can result in unexpected execution of arbitrary code when running "go build". The line directive requires the absolute path of the file in which the directive lives, which makes exploiting this issue significantly more complex.
Line directives ("//line") can be used to bypass the restrictions on " ...
EPSS
8.1 High
CVSS3