GitHub惊天安全漏洞:删除的仓库竟能永远访问

news2024/9/22 19:37:49

引言

近日,GitHub 被曝出一个严重的安全漏洞,引发了广泛关注。开源安全软件公司 Truffle Security 的安全研究员 Joe Leon 发现,在 GitHub 上删除的代码仓库实际上仍然可以被访问。这一发现震惊了整个开源社区。本文将详细探讨这一安全漏洞的发现过程、其技术细节及其对 GitHub 用户的影响。

发现过程

在 Joe Leon 的研究中,他发现当用户在 GitHub 上删除一个 fork 的仓库时,实际上提交到该仓库的数据仍然可以被访问。这一问题的严重性在于,即便原始仓库被删除,fork 仓库的提交数据也仍然存在,且可以通过提交的哈希值来访问。

具体操作步骤

  1. 用户 fork 一个公共仓库。
  2. 用户向 fork 仓库提交数据。
  3. 用户删除 fork 仓库。

尽管用户认为这些数据已经被删除,但实际上仍可以通过原始仓库访问这些数据。这意味着,删除操作在数据保护方面实际上是无效的。

技术细节

GitHub 的这一问题源自于其处理删除仓库的方式。当用户删除一个仓库时,GitHub 只是删除了仓库的引用,但提交的数据仍然保存在其底层存储中。更令人担忧的是,任何人只要知道提交的哈希值,就可以访问这些提交的数据。

CFOR(Cross Fork Object Reference)漏洞

Truffle Security 引入了一个新的安全术语 CFOR(Cross Fork Object Reference)来描述这一漏洞。CFOR 意味着当一个仓库 fork 可以访问另一个 fork 中的敏感数据时,就会出现这种漏洞。用户只需要提供 commit 的哈希值,就可以直接访问提交的数据。

SHA-1哈希暴力破解

GitHub 允许使用短 SHA-1 值来引用提交,而短 SHA-1 值最小为 4 个字符。由于 4 个字符的 SHA-1 值只有 65,536 种可能性,这使得暴力破解这些值变得相对容易。一旦破解了哈希值,用户就可以访问到相关的提交数据。

案例研究

研究人员在一段视频中展示了如何利用这一漏洞。他们 fork 了一个仓库,提交数据后删除了 fork 仓库,结果仍然可以通过原始仓库访问“已删除”的数据。更令人担忧的是,研究人员在一家大型 AI 公司的 3 个经常被 fork 的公共代码仓库中,轻松找到了 40 个有效的 API 密钥。

GitHub 的回应

GitHub 将 CFOR 视为一种设计特性,而非漏洞。他们认为这是有意为之的设计,符合其预期。GitHub 的官方文档也描述了这种行为。这一回应引发了广泛争议,因为这种设计显然存在安全隐患。

平台的处理方式

虽然悬空提交是 git 中的一个概念,并不属于 GitHub 的功能,但每个平台对于悬空提交的处理方式是不同的。Bitbucket、GitLab 和 GitHub 都保留这些提交,只要用户掌握了标识符就可以访问这些数据。

影响和建议

这一安全漏洞对使用 GitHub 的企业和个人用户构成了严重的安全隐患。他们的机密数据可能会无意中暴露在组织的公共 GitHub 仓库中。为了防止数据泄露,Truffle Security 建议用户在发现提交了敏感信息后,应立即更换密钥,而不是仅仅删除相关的仓库或引用。

总结

GitHub 的这一设计特性暴露了其在数据删除和保护方面的重大缺陷。尽管 GitHub 将其视为功能,但这一漏洞显然需要引起重视。希望 GitHub 能重新考虑其立场,为用户提供更安全的数据保护机制。

未来展望

未来,GitHub 或其他代码托管平台可能需要引入新的功能,以允许用户永久删除提交的数据,并确保 fork 之间的数据隔离。同时,用户在使用这些平台时也需要更加谨慎,避免提交敏感信息。
在这里插入图片描述

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

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

相关文章

PXE服务器自助部署

kickstart部分 一、实验环境 两台主机:一台用于环境搭建(ngnix.yee.org),一台用于测试(check_ks)。测试机 二、开启主机图形工具,并进行基本配置 查看 /root/anaconda-ks.cfg 文件,这个文件是系统安装以…

学习记录——day26 进程间的通信(IPC)无名管道 无名管道 信号通信 特殊的信号处理

目录 一、进程间通信引入 二、无名管道 1、无名管道相关概念 2、无名管道的API接口函数 pipe(int pipefd[2]); 3、管道通信的特点 4、管道的读写特点 三、无名管道 1、有名管道:有名字的管道文件,其他进程可以调用 2、可以用于亲缘进程间的通信&…

windows下,使用vs code远程连接云服务器【以CentOS7为例】

windows下,使用vs code远程连接云服务器 1. 下载VS code并准备相关插件2. 使用Remote - SSH远程控制Linux 1. 下载VS code并准备相关插件 1. VS code官网: 下载地址:https://code.visualstudio.com/Download下载合适版本的vs code。 2. 推荐…

20款奔驰S450升级原厂红外夜视系统,提升您夜晚行车安全

夜视辅助系统增强版不仅可以对处于潜在危险位置的行人进行探测,还可发现动物。当车辆进入没有路灯的区域,第三代夜视系统可自动将仪表盘的显示内容从车速表转变为锐度极高的夜视图像,并将探测到前方出现的行人或动物在系统中以鲜明的色彩突出…

CSS前端:元素的布局技巧

【备注】在线测试网站&#xff0c;点此进入。 一、内边距和外边距 【总结】padding增加本元素和子元素的距离&#xff0c;margin增加本元素和父元素的距离。 二、居中和对齐 【需求】 【HTML】 <div id"container"><p id"top">我在div容器…

打卡第33天------动态规划

周末的时候刷题了,在代码随想录系统的学习了一遍算法,看到leetcode上的题不再那么懵了,有点思路了,心里面对题的恐惧感也在逐渐消失,滴水石穿,小坚持带来大改变。 一、不同路径 leetcode题目链接:62.不同路径 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始…

【更新2022】省级经济高质量发展指标体系测度 含代码 2000-2022

重磅更新&#xff01;【章汕】制作“省级经济高质量发展指标体系测度 含代码”&#xff0c;市面上有这个版本的数据&#xff0c;但其内容非常不全面&#xff0c;个别指标有误&#xff0c;没有stata和代码&#xff0c;即使有代码小白也很容易报错&#xff1b;没有权重、宽面板等…

大数据SQL面试题002-合并日期重叠的活动

在大数据SQL面试中&#xff0c;我们经常会遇到一些棘手的问题&#xff0c;比如合并日期重叠的活动。本文将为大家详细解析这个问题&#xff0c;并提供相应的解决方案。 一、题目分析 题目要求我们处理一个表&#xff0c;表中记录了每个品牌的活动开始日期和结束日期。如果两个…

鸿蒙(API 12 Beta2版)NDK开发【LLDB高性能调试器】调试和性能分析

概述 LLDB&#xff08;Low Level Debugger&#xff09;是新一代高性能调试器。 当前HarmonyOS中的LLDB工具是在[llvm15.0.4]基础上适配演进出来的工具&#xff0c;是HUAWEI DevEco Studio工具中默认的调试器&#xff0c;支持调试C和C应用。 工具获取 可通过HUAWEI DevEco S…

c语言-EasyX库编写的第一个项目-哪都通快递平台

目录 概要设计与详细设计文档 项目测试 相关文件下载 作为《程序设计微项目设计》进行为期一周的开发 概要设计与详细设计文档 1&#xff0e; 项目名称 “哪都通”快递平台 2.项目概述 2.1项目简介 本项目采用c语言全程编写&#xff0c;运用Easyx库创建窗口进行图形显…

shell函数的基本知识

文章目录 shell函数定义函数调用函数函数参数返回值 Shell 输入/输出重定向输入重定向输出重定向 Shell 函数是 Shell 脚本编程中的一个非常有用的特性&#xff0c;它允许你将一段代码封装起来&#xff0c;给它一个名字&#xff08;函数名&#xff09;&#xff0c;然后在脚本的…

力扣面试经典算法150题:合并两个有序数组

算法 本篇开始&#xff0c;正式进入算法刷题篇。 题目来源于力扣面试经典150题。 题目链接&#xff1a;https://leetcode.cn/studyplan/top-interview-150/ 合并两个有序数组 题目选自150题中的数组/字符串一类&#xff0c;题目难度&#xff1a;简单。 题目描述 给定两个按…

R 语言学习教程,从入门到精通,R 基础运算(5)

1、R 基础运算 本章介绍 R 语言的简单运算。 1.1、赋值 一般语言的赋值是 号&#xff0c;但是 R 语言是数学语言&#xff0c;所以赋值符号与我们数学书上的伪代码很相似&#xff0c;是一个左箭头 <- &#xff1a; a <- 123 b <- 456 print(a b)以上代码执行结果…

分享一个基于Node.js和Vue的农产品销售与交流平台(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

RabbitMQ-安装篇(阿里云主机)

一、操作系统 用的是Alibaba Cloud Linux release 3 (Soaring Falcon)系统&#xff0c;可以通过命令&#xff1a;lsb_release -a 查看系统信息。 二、安装RabbitMQ RabbitMQ 是基于 Erlang 语言构建的&#xff0c;要安装RabbitMQ&#xff0c;需先安装Erlang环境。通过Erlang V…

【IO】使用有名管道实现,一个进程用于给另一个进程发消息,另一个进程收到消息后,展示到终端上,并且将消息保存到文件上一份

目录 1、使用有名管道实现&#xff0c;一个进程用于给另一个进程发消息&#xff0c;另一个进程收到消息后&#xff0c;展示到终端上&#xff0c;并且将消息保存到文件上一份 2、使用有名管道实现两个进程间相互通信 1、使用有名管道实现&#xff0c;一个进程用于给另一个进程发…

Linux权限-普通权限

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注我&#xff0c;我尽量把自己会的都分享给大家&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 根据前面Linux用户介绍&#xff0c;里面涉及到超级管理员&#xff0c;普通用户&…

AI技术重塑招聘流程:效率与精准度的双重提升

一、引言 在21世纪的数字经济浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度渗透到社会经济的各个领域&#xff0c;其中&#xff0c;人力资源&#xff08;HR&#xff09;管理领域也不例外。作为组织发展与人才战略的核心环节&#xff0c;招聘流程正经…

VoNR网络架构与网元 IMS终端号码结构(VoLTE和VoNR适用)

目录 1. VoNR网络架构与网元 1.1 VoNR架构 vs VoLTE架构 1.2 回顾语音网络的演进与“分离” 1.3 TS23.228给出的5G的VoNR国际漫游 Home Routed 方案架构图 1.4 VoNR 网络架构图&#xff08;2022版&#xff09; 1.5 IMS 网元分类&#xff08;VoNR VoLTE 适用&#xff09…

【SpringBoot】集成Redis

[TOC] 1 redis ​ redis是一个用C语言开发的&#xff0c;基于内存结构进行键值对数据存储、高性能、非关系型NoSQL数据库 ​ 官网&#xff1a; https://redis.io/ 1.1 特点 基于内存存储&#xff0c;数据读写效率很高本身支持持久化虽然基于key-value存储&#xff0c;但是…