go库x/text缺陷报告CVE-2022-32149的处理方案

#问题描述

go库 golang.org/x/text ,注意这里不是go的源码, 在0.3.8版本之前存在一个缺陷(Vulnerability)

缺陷ID

CVE-2022-32149

具体描述

攻击者可以通过制作一个Accept-Language报头来导致拒绝服务。
具体的原因是,在解析这个Accept-Language报头时,是比较花时间的。攻击者可以针对这个,故意填充大量的Accept-Language报头内容来导致服务器的资源消耗,从而拖垮服务器。
有问题的函数是ParseAcceptLanguage。

源码分析

根据原因,源码里主要就是对长度做了一层判断。 一共4行代码改动
https://go-review.googlesource.com/c/text/+/442235/2/language/parse.go#166

解决方案

在github(https://github.com/golang/go/issues/56152)上,有说解决的版本是0.4.0
在这里插入图片描述

这里需要明确一个概念,直接引用间接引用
如果你的代码中直接引用了这个库,可以把他升级到最新的版本。 如果是间接引用,要看一下是否是否真实使用到。

如果是真实使用到,在go build的时候go就会提示你使用go get拉去对应的text库的代码,(这个代码在modcache目录下,一般是在你home目录下),如果是使用到的话,编译环境的机器上也是可以搜到的。

间接引用,不一定就使用到了间接引用的全部代码,尽管在go源码中,通过go mod graph也可以看到里面的引用,但是对应我们的程序就是间接引用了,这里不一定真实用到。

go mod graph | grep textstd golang.org/x/text@v0.11.0
golang.org/x/crypto@v0.11.1-0.20230711161743-2e82bdd1719d golang.org/x/text@v0.11.0
golang.org/x/net@v0.12.1-0.20231027154334-5ca955b1789c golang.org/x/text@v0.11.0
golang.org/x/text@v0.11.0 golang.org/x/tools@v0.6.0
golang.org/x/text@v0.11.0 golang.org/x/mod@v0.8.0
golang.org/x/text@v0.11.0 golang.org/x/sys@v0.5.0

另外一种证明。 对于linux下的go生成的文件,大体使用了gcc生成的可执行程序。可以直接使用如下命令来查看是否存在该函数的调用。如果存在,则会出现binary matches字样

grep ParseAcceptLanguage  xxxx

相关连接

https://go.dev/cl/442235
https://go.dev/issue/56152
https://groups.google.com/g/golang-announce/c/-hjNw559_tE/m/KlGTfid5CAAJ
https://pkg.go.dev/vuln/GO-2022-1059
https://golangtutorial.dev/news/fix-in-golang-text-package/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/790955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3新增的语法(三)【2D,3D,过渡,动画】

CSS3新增的语法(三)【2D,3D,过渡,动画】 10.2D变换10.1. 2D位移10.2. 2D缩放10.3. 2D旋转10.4. 2D扭曲(了解)10.5. 多重变换10.6. 变换原点 11. 3D变换11.1. 开启3D空间11.2. 设置景深11.3. 透视点位置11.4. 3D 位移11…

汽车电子行业知识:什么是汽车协议栈

汽车协议栈是一种软件架构,用于在汽车电子系统中实现不同设备之间的通信。它通常由多个协议层组成,每个协议层负责处理特定的通信功能。汽车协议栈可以支持多种通信协议。 汽车传感器通常使用的协议栈包括以下几种: SPI (Serial Peripheral…

反截屏控制技术如何防止信息通过手机拍照泄漏?

反截屏控制技术为企业数据安全提供了重要的防护措施。通过以下几点,有效阻止了信息通过拍照等方式的泄漏: 反截屏控制开启,用户启动截屏操作时,允许非涉密内容截屏操作,但所有涉密内容窗口会自动隐藏,防止涉…

Spark-Scala语言实战(11)

在之前的文章中,我们学习了如何在spark中使用RDD中的cartesian,subtract最终两种方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-Scal…

2023最新汽车网络安全报告汇总

2023最新汽车网络安全报告、安全参考架构及指南汇总,供大家学习参考。https://t.zsxq.com/18RkG260k 汽车信息安全法律法规及标准全景图V3.2.pdf 车载智能计算基础平台参考架构2.0.pdf 车载智能计算芯片白皮书(2023版).pdf 智能驾驶行为安全评价方法发布版.pdf 智能…

【Next.js】连接 MongoDB 实现基本的接口

【Next.js】连接 MongoDB 实现基本的接口 什么是 MongoDB MongoDB 是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解…

填谷式无源PFC电路

目录: 1、概述 2、原理 1、概述 如果不采用PFC,那么典型开关模式电源的功率因数约为0.6,因而会有相当大的奇次谐波失真(第三谐波有时和基本谐波一样大)。令功率因数小于1以及来自峰值负载的谐波减少了运行设备可用的实际功率。为运行这些低…

数据结构——二叉树(堆)

大家好我是小峰,今天我们开始学习二叉树。 首先我们来学习什么是树? 树概念及结构 树是一种 非线性 的数据结构,它是由 n ( n>0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的…

acwing算法提高之图论--SPFA找负环

目录 1 介绍2 训练 1 介绍 本专题用来记录使用spfa算法来求负环的题目。 2 训练 题目1&#xff1a;904虫洞 C代码如下&#xff0c; #include <cstring> #include <iostream> #include <algorithm> #include <queue>using namespace std;typedef p…

C、C++、C#中.vscode下json文件记录

C launch.json {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configurations": [{"name": &quo…

【2024红明谷】三道Web题目的记录

红明谷 文章目录 红明谷Web1 | SOLVED LaterWeb2 | UNSOLVEDWeb3 | SOLVED 容器已经关咯&#xff0c;所以有些场景只能靠回忆描述啦&#xff0c;学习为主&#xff0c;题目只是一个载体~ 本次比赛学习为主&#xff0c;确实再一次感受到久违的web题目的魅力了&#xff0c;可能也是…

数据转换 | Matlab基于GASF格拉姆角和场一维数据转二维图像方法

目录 效果分析基本介绍程序设计参考资料获取方式 效果分析 基本介绍 基于GASF&#xff08;Gramian Angular Summation Field&#xff09;的方法&#xff0c;将一维数据转换为二维图像的步骤描述 标准化数据&#xff1a; 首先&#xff0c;对一维时序数据进行标准化处理&#xf…

java八股——linux常见命令

上一篇传送门&#xff1a; 点我 说说你知道的linux命令&#xff1f; 1.ls&#xff1a;列出目录内容。 示例&#xff1a;ls -l&#xff08;以长格式显示目录内容&#xff0c;可以缩写成ll&#xff09;&#xff0c;ls -a&#xff08;显示包括隐藏文件在内的所有文件&#xff09…

Python如何下载视频

大家好&#xff0c;今天我将为大家介绍如何使用Python来下载视频。Python作为一门强大的编程语言&#xff0c;不仅可以用于数据分析、机器学习等领域&#xff0c;还能用于网络爬虫和视频下载等任务。下面我将详细介绍如何使用Python来下载视频。 首先&#xff0c;我们需要明确…

MyBatis的基本应用

源码地址 01.MyBatis环境搭建 添加MyBatis的坐标 <!--mybatis坐标--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql驱动坐…

『51单片机』蜂鸣器

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

OpenHarmony实战:轻量级系统之配置其他子系统

除上述子系统之外&#xff0c;还有一些必要但是无需进行移植的子系统。如&#xff1a;分布式任务调度子系统、DFX子系统。 这些子系统添加方式比较简单&#xff0c;在“vendor/MyVendorCompany/MyProduct/config.json”文件中进行如下配置即可&#xff1a; {"subsystem&…

sqlalchemy的Session

在使用SQLAlchemy进行数据库操作时&#xff0c;Session是对数据库交互的主要接口之一。在Session中执行查询时&#xff0c;可以通过不同的方法来添加查询条件&#xff0c;从而筛选出符合要求的记录。以下是一些常见的Session查询中添加条件。 1. 使用filter_by方法 filter_by…

专有钉钉微应用埋点以及本地调试埋点总结

最近在对接浙政钉&#xff0c;稳定性监控、通用采集 SDK、基础埋点、基础埋点&#xff0c;每次发布上去&#xff0c;工作人员那边反馈抓取不到信息 稳定性监控代码、通用采集 SDK index.html <!-- 流量稳定监控 S 关于埋点上线打开--><script src"https://wpk-…

IDEA 中能提高开发效率的插件

目录 前言 插件 Rainbow Brackets AceJump POJO to JSON Json Helper MybatisX Maven Helper PlantUML Integration TONYYI Lingma 前言 IDEA 里又很多好用的插件可以帮助我们提升开发效率&#xff0c;这里罗列下自己开发过程中常用的插件&#xff0c;善于利用插件&…