TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

From xz to ibus: more questionable tarballs

170 pointsby nateb2022about 1 year ago

11 comments

dhxabout 1 year ago
1.5.29-rc2 was tagged on 9 Nov 2023 [1] and, as an example, did not contain &quot;N_(&quot;CJK Unified Ideographs Extension I&quot;),&quot; in src&#x2F;ibusunicodegen.h [2].<p>Commit 228f0a77b2047ade54e132bab69c0c03f0f41aae from 28 Feb 2023 introduced this change instead. It&#x27;s the same person who tagged 1.5.29-rc2 and committed 228f0a77b2047ade54e132bab69c0c03f0f41aae which is typically an indication the maintainer tar&#x27;d their checked out git folder and accidentally included changes not get committed.<p>The question raised is whether anyone is auditing these differences before the checksummed tarballs are added to package repositories.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;ibus&#x2F;ibus&#x2F;releases&#x2F;tag&#x2F;1.5.29-rc2">https:&#x2F;&#x2F;github.com&#x2F;ibus&#x2F;ibus&#x2F;releases&#x2F;tag&#x2F;1.5.29-rc2</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;ibus&#x2F;ibus&#x2F;blob&#x2F;0ad8e77bd36545974ad8acd0a5283cf72bc7c8ad&#x2F;src&#x2F;ibusunicodegen.h">https:&#x2F;&#x2F;github.com&#x2F;ibus&#x2F;ibus&#x2F;blob&#x2F;0ad8e77bd36545974ad8acd0a5...</a><p>[3] <a href="https:&#x2F;&#x2F;github.com&#x2F;ibus&#x2F;ibus&#x2F;commit&#x2F;228f0a77b2047ade54e132bab69c0c03f0f41aae">https:&#x2F;&#x2F;github.com&#x2F;ibus&#x2F;ibus&#x2F;commit&#x2F;228f0a77b2047ade54e132ba...</a>
评论 #39902626 未加载
评论 #39903298 未加载
kzrdudeabout 1 year ago
I&#x27;ve enabled &quot;trusted publishing&quot; as it is called for python packages (publishing to cheeseshop&#x2F;PyPI).<p>However, what they call trusted publishing is just a configuration where PyPI tells github that publishing from a particular workflow name on a particular repository is ok, without further tokens. So PyPI &quot;trusts&quot; github actions and the maintainer is out of the loop.<p>All good? Well, if you trust Github!<p>It would be a lot better to me if both the maintainer and github were involved, something like - the maintainer signs off on some artifacts, and the github action verifies they are reproducible exactly by a workflow, and &#x2F;then&#x2F; it&#x27;s published.
评论 #39904958 未加载
评论 #39904458 未加载
评论 #39903703 未加载
评论 #39905920 未加载
评论 #39903762 未加载
andersaabout 1 year ago
Why is this a thing? Can&#x27;t packages use specific tags from the git repo? It seems so incredibly stupid to allow this, throwing out all of the &quot;oh but it&#x27;s open source you can review it&quot; arguments in one go if the source displayed on GitHub is not what ends up used...
评论 #39903847 未加载
评论 #39904645 未加载
评论 #39904853 未加载
评论 #39903504 未加载
评论 #39903821 未加载
评论 #39903586 未加载
sam_goodyabout 1 year ago
This has <i>really</i> been bugging me about npm.<p>Anyone can publish a open source repo and add it to npmjs. Users going to the page on npmjs will see that the repo with the code is github.com&#x2F;myrepo.<p>But when I do `npm i myrepo` there is no guarantee that what is being pulled is in any way similar to what is in the linked repo. Creating a false feeling that the code <i>could</i> be reviewed.<p>At the very least, Github should not allow this for code on their platform (ie, if npmjs has it listed as the repo of a project they should scan that the project actually builds to the content or notify npm who should have it flagged). Or npmjs should regularly scan the same - checking that the code you would get by compiling matches the code being offered<p>Bear in mind that if a bad actor can get in at the level of the NPM user, even if the user is not running with elevated privileges (which it often is since you need to be a superuser to listen on port 80 or to read SSL certificates, and PM2 with handling for SSL is way above the ability of many devs, sigh), they can scan for vulnerabilities, and perhaps open themselves a very big hole.
评论 #39904030 未加载
评论 #39903710 未加载
评论 #39904463 未加载
kijinabout 1 year ago
What makes maintainers of major distros still rely on questionable tarballs to build packages? It&#x27;s not as if these essential programs don&#x27;t have a public, authoritative git repository.<p>Is it because of inertia, because we&#x27;ve been using tarballs since before VCS was a thing? Is it to reduce the burden of package maintainership, by letting upstream do most of the transpiling and autotools plumbing work? Is it because some assets and test data are only included in the tarballs? Why are they not committed, either to the same repo or (if upstream wishes to keep the main repo small) some other repo?<p>People have been calling for reproducible builds for years now, but reproducible builds don&#x27;t mean anything if they are not built from authoritative sources with immutable commit IDs.
评论 #39904200 未加载
评论 #39904049 未加载
评论 #39903723 未加载
评论 #39903537 未加载
评论 #39904924 未加载
评论 #39903370 未加载
jiggawattsabout 1 year ago
I&#x27;ve noted similar vulnerabilities in every common package management system, including NuGet, Cargo, and NPM. There are giant gaps in security a truck could be driven through.<p>Collectively, we <i>must</i> start taking the &quot;bill of materials&quot; that goes into our software much more seriously, including the chain of custody from source to binary.<p>Start with linking each package directly to the Git commit hash it came from.<p>Then a good start would be enforced reproducible builds. Don&#x27;t trust the uploader to package their code. Run this step <i>in the package management system</i> from the provided source hash.<p>Pure functional build systems would be a heck of a lot better, with no side effects of any kind permitted. No arbitrary scripts or arbitrary code during build. No file reads, network access, or <i>API calls of any kind</i> outside of the compiler toolkit itself.<p>Then, I would like to see packages go through specially instrumented compilers that generate an &quot;ingredient label&quot; for each package. Transitive dependencies. Uses of unsafe constructs in otherwise safe languages. Lists of system calls used. Etc...<p>You&#x27;re about to say that clever hackers can work around that by using dynamic calling, or call-by-name, or some other clever trick.<p>Sure, that&#x27;s possible, but then the system can <i>report that</i>. If some random image codec or compression library uses any platform API <i>at all</i>, then it&#x27;s instantly suspect. These things should be as pure as the driven snow: <i>Bytes in, decoded data out.</i>
评论 #39904978 未加载
userbinatorabout 1 year ago
What clickbait. I don&#x27;t see anything actually &quot;questionable&quot; here, other than someone trying to ride on the xz hype train.
评论 #39906128 未加载
gunapologist99about 1 year ago
We <i>could</i> create and hash the tarball from git and compare it to the released tarball, even if it wasn&#x27;t originally signed. We could even use Merkle trees (perhaps combining with find) to ensure that individual files were unchanged.<p>At least then we could verify that the tarball was derived from that exact git commit.
zzzeekabout 1 year ago
so glad pypi actively removed support for package signatures and even sends you an annoying email if your scripts dare to actually upload a signature anyway
shp0ngleabout 1 year ago
Does Nix&#x2F;Guix solve this?<p>I have been skeptical of &quot;rewrite everything into rust&quot;, but... maybe we should at least rewrite everything into Nix?
评论 #39904272 未加载
评论 #39904863 未加载
评论 #39904265 未加载
评论 #39904289 未加载
评论 #39905519 未加载
评论 #39912311 未加载
cchanceabout 1 year ago
What a bullshit story