| 00:09:24 |  | Larsenv quits [Excess Flood] | 
| 00:09:46 |  | Larsenv (Larsenv) joins | 
| 00:20:19 |  | etnguyen03 (etnguyen03) joins | 
| 00:35:33 |  | nepeat quits [Ping timeout: 272 seconds] | 
| 00:35:41 |  | BlueMaxima quits [Read error: Connection reset by peer] | 
| 00:41:32 |  | nepeat (nepeat) joins | 
| 02:12:44 |  | etnguyen03 quits [Client Quit] | 
| 02:14:42 |  | etnguyen03 (etnguyen03) joins | 
| 02:16:51 |  | etnguyen03 quits [Client Quit] | 
| 03:31:48 |  | Specular joins | 
| 03:46:17 |  | @dxrt quits [Read error: Connection reset by peer] | 
| 03:46:22 |  | DogsRNice_ quits [Read error: Connection reset by peer] | 
| 04:06:49 |  | qw3rty__ quits [Ping timeout: 255 seconds] | 
| 04:09:36 |  | qw3rty__ joins | 
| 04:10:47 |  | dxrt joins | 
| 04:10:49 |  | dxrt is now authenticated as dxrt | 
| 04:10:49 |  | dxrt quits [Changing host] | 
| 04:10:49 |  | dxrt (dxrt) joins | 
| 04:10:49 |  | @ChanServ sets mode: +o dxrt | 
| 04:34:16 |  | xarph quits [Quit: ZNC 1.8.2+deb2build5 - https://znc.in] | 
| 04:40:26 |  | xarph joins | 
| 05:17:15 |  | icedice quits [Client Quit] | 
| 06:17:09 |  | Specular quits [Read error: Connection reset by peer] | 
| 06:25:42 |  | Specular joins | 
| 07:05:41 |  | Chris50100 (Chris5010) joins | 
| 07:05:51 |  | Specular_ joins | 
| 07:08:13 |  | Chris5010 quits [Ping timeout: 272 seconds] | 
| 07:08:13 |  | Chris50100 is now known as Chris5010 | 
| 07:10:07 |  | Specular quits [Ping timeout: 272 seconds] | 
| 07:15:30 |  | icedice (icedice) joins | 
| 08:14:07 |  | lizardexile_ joins | 
| 08:17:28 |  | lizardexile quits [Ping timeout: 255 seconds] | 
| 08:49:14 | <fireonlive> | https://x.com/veh0rny/status/1812295241707266330 | 
| 08:49:14 | <eggdrop> | nitter: https://nitter.privacydev.net/veh0rny/status/1812295241707266330 | 
| 08:49:15 | <fireonlive> | hmmmmm | 
| 08:55:30 |  | yarrow quits [Client Quit] | 
| 09:00:02 |  | Bleo1826007227196 quits [Client Quit] | 
| 09:01:20 |  | yarrow (yarrow) joins | 
| 09:01:27 |  | Bleo1826007227196 joins | 
| 09:08:07 |  | benjinsm joins | 
| 09:11:43 |  | benjins quits [Ping timeout: 272 seconds] | 
| 09:51:58 |  | Specular_ quits [Ping timeout: 255 seconds] | 
| 10:04:17 |  | pabs quits [Ping timeout: 272 seconds] | 
| 10:30:53 |  | nulldata quits [Ping timeout: 272 seconds] | 
| 10:49:39 |  | yarrow quits [Read error: Connection reset by peer] | 
| 10:49:59 |  | nulldata (nulldata) joins | 
| 10:51:51 |  | yarrow (yarrow) joins | 
| 10:56:25 |  | icedice2 (icedice) joins | 
| 11:00:01 |  | icedice quits [Ping timeout: 272 seconds] | 
| 11:02:52 |  | Ruthalas59 quits [Remote host closed the connection] | 
| 11:11:37 |  | midou quits [Ping timeout: 255 seconds] | 
| 11:13:17 |  | pabs (pabs) joins | 
| 11:20:19 |  | sludge_ joins | 
| 11:22:19 |  | sludge__ joins | 
| 11:22:52 |  | sludge quits [Ping timeout: 255 seconds] | 
| 11:25:07 |  | sludge_ quits [Ping timeout: 255 seconds] | 
| 13:13:01 |  | qw3rty__ quits [Ping timeout: 272 seconds] | 
| 13:15:05 |  | qw3rty__ joins | 
| 14:29:39 |  | katocala quits [Ping timeout: 272 seconds] | 
| 14:29:56 |  | katocala joins | 
| 14:29:56 |  | katocala is now authenticated as katocala | 
| 14:42:05 |  | icedice2 quits [Client Quit] | 
| 14:45:49 |  | katocala quits [Ping timeout: 255 seconds] | 
| 14:46:02 |  | katocala joins | 
| 14:46:02 |  | katocala is now authenticated as katocala | 
| 15:58:57 |  | DogsRNice joins | 
| 16:00:42 |  | DogsRNice_ joins | 
| 16:04:34 |  | DogsRNice quits [Ping timeout: 255 seconds] | 
| 16:29:38 |  | DogsRNice_ quits [Client Quit] | 
| 16:29:40 |  | DogsRNice_ joins | 
| 16:30:06 |  | DogsRNice_ quits [Read error: Connection reset by peer] | 
| 16:33:42 |  | DogsRNice joins | 
| 16:40:52 |  | midou joins | 
| 16:49:37 |  | qw3rty__ quits [Ping timeout: 272 seconds] | 
| 16:50:08 |  | qw3rty__ joins | 
| 17:16:25 |  | HackMii quits [Remote host closed the connection] | 
| 17:20:48 |  | icedice (icedice) joins | 
| 17:31:05 |  | HackMii (hacktheplanet) joins | 
| 17:39:34 | <pabs> | http://blog.sesse.net/blog/tech/2024-07-15-13-04_pull_requests_via_git_push.html | 
| 18:04:26 |  | HackMii quits [Remote host closed the connection] | 
| 18:12:18 |  | HackMii (hacktheplanet) joins | 
| 18:19:41 |  | Shjosan quits [Quit: Am sleepy (-, – )…zzzZZZ] | 
| 18:20:33 |  | Shjosan (Shjosan) joins | 
| 18:22:33 |  | HackMii quits [Remote host closed the connection] | 
| 18:25:27 |  | HackMii (hacktheplanet) joins | 
| 18:38:58 |  | PredatorIWD quits [Read error: Connection reset by peer] | 
| 18:44:28 |  | PredatorIWD joins | 
| 19:25:12 | <fireonlive> | modern web developers: fuck you | 
| 19:25:14 | <fireonlive> | thanks | 
| 19:30:42 |  | pabs quits [Read error: Connection reset by peer] | 
| 19:31:21 |  | pabs (pabs) joins | 
| 20:03:57 |  | DogsRNice_ joins | 
| 20:06:40 |  | DogsRNice quits [Ping timeout: 255 seconds] | 
| 20:07:06 | <pabs> | same to modern browser developers: fuck you too :) | 
| 20:19:11 | <pabs> | https://www.ow2.org/view/Events/The_European_Union_must_keep_funding_free_software_open_letter https://news.ycombinator.com/item?id=40970985 | 
| 20:26:51 |  | Irene quits [Read error: Connection reset by peer] | 
| 20:31:07 |  | Irenes (ireneista) joins | 
| 20:44:31 |  | AlsoHP_Archivist joins | 
| 20:48:23 |  | HP_Archivist quits [Ping timeout: 272 seconds] | 
| 21:00:31 |  | ThetaDev quits [Client Quit] | 
| 21:00:49 |  | ThetaDev joins | 
| 21:02:44 | <fireonlive> | hello where did i leave my beats headphones | 
| 21:02:48 | <fireonlive> | thanks xoxo | 
| 21:03:35 |  | nic8693102 quits [Ping timeout: 272 seconds] | 
| 21:08:36 | <nulldata> | !8ball Will fireonlive find his Beats? | 
| 21:08:37 | <eggdrop> | 🎱: nulldata, as i see it, yes | 
| 21:08:46 | <nulldata> | fireonlive - Good news! | 
| 21:08:55 | <fireonlive> | yay! | 
| 21:20:08 | <kpcyrd> | fireonlive: "I have backups, in case someone discovers some sort of evil security hole" - git, email, shell, $5 there's some kind of RCE issue in this setup | 
| 21:20:36 | <fireonlive> | oh for sure haha | 
| 21:22:08 | <kpcyrd> | it's creative, but I wish the "decentralize everything!!" people would eventually figure something out and normalize it | 
| 21:22:22 | <kpcyrd> | specifically for contributions | 
| 21:23:48 | <fireonlive> | hopefully forgejo... maybe? | 
| 21:24:46 | <kpcyrd> | the thing nobody can pronounce? :) | 
| 21:24:47 |  | ymgve_ joins | 
| 21:24:58 |  | f_ quits [Ping timeout: 255 seconds] | 
| 21:25:11 | <fireonlive> | 😅 | 
| 21:26:26 |  | f_ (funderscore) joins | 
| 21:26:33 |  | etnguyen03 (etnguyen03) joins | 
| 21:26:50 | <kpcyrd> | http://ipa-reader.xyz/?text=for%CB%88d%CD%A1%CA%92e.jo apparently | 
| 21:28:55 |  | ymgve quits [Ping timeout: 272 seconds] | 
| 21:31:25 | <steering> | Excluding an RCE in git/git-http-backend (whatever that is) it should be perfectly secure | 
| 21:32:16 | <steering> | tis a neat idea | 
| 21:38:02 | <kpcyrd> | I mean the good ol CVE-2018-1000156 style unix exploits | 
| 21:39:33 | <kpcyrd> | "oh actually when processing this patch it invokes ed and pipes the input as editor instructions but the editor also supports `!<cmd>`" or something | 
| 21:40:24 | <kpcyrd> | bless if you memorized all /usr/bin/mail footguns | 
| 21:42:37 | <steering> | sure, but git is what's actually doing everything from patching to mailing, and has been pretty heavily scrutinized for this sort of workflow; half the issues in git historically have also been present in the various git frontends | 
| 21:43:38 | <steering> | I'm sure there are plenty more RCE's in git I just wouldn't attribute them "in this setup" :) | 
| 21:49:22 | <kpcyrd> | it's difficult to reason about this because those are probably not reachable through git-http-backend, but for starters ` --quiet $oldsha..$newsha` -> ` --quiet "$oldsha..$newsha"` and `read -r` | 
| 21:56:39 | <kpcyrd> | the script is bugged in the way that it can't properly handle echo '--sendmail-cmd="touch\ /tmp/pwned"\ 1337 foo bar refname', and you rely on the other program to keep you secure and this bug unreachable | 
| 21:57:18 | <kpcyrd> | (I didn't test this, but something along these lines should work) | 
| 22:04:35 |  | sec^nd quits [Ping timeout: 260 seconds] | 
| 22:09:58 |  | sec^nd (second) joins | 
| 22:10:25 | <kpcyrd> | you could even go with `--quiet -- "$oldsha..$newsha"` if you want to be extra correct. the quotes prevent argument splitting, but they don't stop the argument parser from assigning special meaning to the 0x2C byte - you'd rely on the absence of an positional argument to not act on the flag that was passed instead | 
| 22:11:20 | <steering> | While I agree that it should at least be quoted I also expect git to strictly define the format it sends to hooks because they're expected to receive untrusted data and the format is strictly defined (by git) | 
| 22:12:47 | <kpcyrd> | *0x2D | 
| 22:14:18 | <kpcyrd> | it's likely not exploitable, but the amount of stuff you need to learn/know to be able to reason about all this in the first place is quite something :) | 
| 22:15:19 | <steering> | true, but that's why I'd rather let the smart people writing git help ;) | 
| 22:16:37 | <steering> | https://github.com/git/git/blob/master/builtin/receive-pack.c#L882 yeah they're both explicitly converted into hex before getting fed to the hook | 
| 22:18:26 | <steering> | now with all that said -- yes if he tries doing something more complex in the hook he's gonna get into trouble. thankfully no one says your git hooks have to be written in shell :) | 
| 22:22:45 | <kpcyrd> | or maybe the custom SSH-facing code was not that bad to begin with? ;) | 
| 22:27:51 | <Harzilein> | good evening kpcyrd | 
| 22:28:27 | <Harzilein> | (good (ugt) evening everyone) | 
| 22:34:28 | <kpcyrd> | hello | 
| 22:37:29 |  | GNU_world quits [Quit: Konversation terminated!] | 
| 22:39:41 |  | etnguyen03 quits [Client Quit] | 
| 22:40:04 |  | benjins joins | 
| 22:40:34 |  | benjinsm quits [Ping timeout: 255 seconds] | 
| 22:40:34 |  | benjins2 quits [Ping timeout: 255 seconds] | 
| 22:43:19 |  | sec^nd quits [Ping timeout: 260 seconds] | 
| 22:45:24 |  | etnguyen03 (etnguyen03) joins | 
| 22:45:24 |  | sec^nd (second) joins | 
| 22:48:30 |  | BlueMaxima joins | 
| 22:52:35 |  | GNU_world joins | 
| 23:01:18 |  | yarrow quits [Read error: Connection reset by peer] | 
| 23:05:26 |  | nic8693102 (nic) joins | 
| 23:17:51 |  | sec^nd quits [Ping timeout: 260 seconds] | 
| 23:29:23 | <fireonlive> | !ig es96ihu6b0qmr01g366t04wdk ^https?://www\.millironcontracting\.com/ | 
| 23:29:26 | <fireonlive> | . | 
| 23:30:44 | <thuban> | ((ugt?)) | 
| 23:31:35 |  | sec^nd (second) joins | 
| 23:44:15 |  | etnguyen03 quits [Client Quit] | 
| 23:45:05 |  | Medowar quits [Ping timeout: 272 seconds] | 
| 23:49:59 |  | Medowar joins |