GOLANG_BOOKS Telegram 1009
🔐 Непредвиденные уязвимости в парсерах Go

Go-разработчики нередко упускают из виду, как стандартные JSON / XML / YAML-парсеры могут быть использованы злоумышленниками, что приводит к обходу аутентификации и утечке данных.

1. Опасные теги при (un)marshal

* Поля без json:"-" участвуют в Unmarshal.
* Неверные теги:
* json:"-,omitempty" — парсер ждёт ключ "-", поле остаётся доступным.
* json:"omitempty" — имя поля становится "omitempty", модификатор не работает.

Решение: использовать json:"-" и Semgrep-правила:
trailofbits.go.unmarshal-tag-is-dash и trailofbits.go.unmarshal-tag-is-omitempty.

2. Несогласованность парсеров

* Дубликаты ключей: Go берёт последнее значение, другие парсеры — первое или ошибку.
* Регистронезависимый поиск: {"ACTION":"X"} читается как Action только в Go.
* Unicode-подмена имён (`aKtionſ`) проходит незамеченной.

3. Путаница форматов

* XML-парсер Go игнорирует мусор до/после документа → JSON-внедрение.
* YAML-парсер принимает JSON как валидный YAML.
* Пример CVE-2020-16250 (Hashicorp Vault): JSON в XML-парсер → обход auth.

Рекомендации

* Жёсткий режим:
* JSON — decoder.DisallowUnknownFields()
* YAML — KnownFields(true)
* Свой строгий парсер с проверкой дубликатов и case-collisions.
* Единый парсер и настройки во всех сервисах.
* Следить за безопасными дефолтами JSON v2 в Go.
* Использовать Semgrep для поиска рисков.

Ключевые выводы

1. Включить строгий парсинг.
2. Синхронизировать настройки во всех микросервисах.
3. Переходить на JSON v2, когда он стабилизируется.
4. Периодически запускать статический анализ (Semgrep).

Go-парсеры удобны, но при работе с недоверенными данными необходимы дополнительные меры.

📌 Читать



tgoop.com/golang_books/1009
Create:
Last Update:

🔐 Непредвиденные уязвимости в парсерах Go

Go-разработчики нередко упускают из виду, как стандартные JSON / XML / YAML-парсеры могут быть использованы злоумышленниками, что приводит к обходу аутентификации и утечке данных.

1. Опасные теги при (un)marshal

* Поля без json:"-" участвуют в Unmarshal.
* Неверные теги:
* json:"-,omitempty" — парсер ждёт ключ "-", поле остаётся доступным.
* json:"omitempty" — имя поля становится "omitempty", модификатор не работает.

Решение: использовать json:"-" и Semgrep-правила:
trailofbits.go.unmarshal-tag-is-dash и trailofbits.go.unmarshal-tag-is-omitempty.

2. Несогласованность парсеров

* Дубликаты ключей: Go берёт последнее значение, другие парсеры — первое или ошибку.
* Регистронезависимый поиск: {"ACTION":"X"} читается как Action только в Go.
* Unicode-подмена имён (`aKtionſ`) проходит незамеченной.

3. Путаница форматов

* XML-парсер Go игнорирует мусор до/после документа → JSON-внедрение.
* YAML-парсер принимает JSON как валидный YAML.
* Пример CVE-2020-16250 (Hashicorp Vault): JSON в XML-парсер → обход auth.

Рекомендации

* Жёсткий режим:
* JSON — decoder.DisallowUnknownFields()
* YAML — KnownFields(true)
* Свой строгий парсер с проверкой дубликатов и case-collisions.
* Единый парсер и настройки во всех сервисах.
* Следить за безопасными дефолтами JSON v2 в Go.
* Использовать Semgrep для поиска рисков.

Ключевые выводы

1. Включить строгий парсинг.
2. Синхронизировать настройки во всех микросервисах.
3. Переходить на JSON v2, когда он стабилизируется.
4. Периодически запускать статический анализ (Semgrep).

Go-парсеры удобны, но при работе с недоверенными данными необходимы дополнительные меры.

📌 Читать

BY Golang Books




Share with your friend now:
tgoop.com/golang_books/1009

View MORE
Open in Telegram


Telegram News

Date: |

In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. During a meeting with the president of the Supreme Electoral Court (TSE) on June 6, Telegram's Vice President Ilya Perekopsky announced the initiatives. According to the executive, Brazil is the first country in the world where Telegram is introducing the features, which could be expanded to other countries facing threats to democracy through the dissemination of false content. On June 7, Perekopsky met with Brazilian President Jair Bolsonaro, an avid user of the platform. According to the firm's VP, the main subject of the meeting was "freedom of expression."
from us


Telegram Golang Books
FROM American