HN user

maple3142

1,632 karma

Personal Blog(in Chinese): https://blog.maple3142.net/

Posts55
Comments252
View on HN
www.latacora.com 1y ago

How (not) to sign a JSON object (2019)

maple3142
54pts42
benhoyt.com 4y ago

Don’t try to sanitize input, escape output (2020)

maple3142
128pts128
kmkeen.com 4y ago

Maintainers Matter: The case against upstream packaging (2016)

maple3142
2pts0
joeyh.name 4y ago

Futures of Distributions (2018)

maple3142
2pts0
utcc.utoronto.ca 4y ago

Two types of package managers

maple3142
5pts1
chuttenblog.wordpress.com 5y ago

Data Science is Hard: ALSA in Firefox (2020)

maple3142
1pts0
0x46.net 5y ago

Dotfile Madness (2019)

maple3142
2pts0
mkremins.github.io 5y ago

Unix is not an acceptable Unix (2015)

maple3142
2pts0
crockford.com 5y ago

JavaScript: The most Misunderstood Programming Language (2001)

maple3142
1pts0
github.com 5y ago

The developer of core-JS getting out of jail

maple3142
3pts0
pyfound.blogspot.com 5y ago

Amber Brown: Batteries Included, but They're Leaking (2019)

maple3142
1pts0
adamierymenko.com 5y ago

Privileged Ports Cause Climate Change (2016)

maple3142
1pts0
riggraz.dev 5y ago

The Stack Overflow Antipattern

maple3142
4pts0
github.com 5y ago

Zinit: Flexible and fast Zshell plugin manager

maple3142
1pts0
bdach.github.io 5y ago

When double.Epsilon can equal 0

maple3142
6pts0
changelog.com 5y ago

Use long flags when scripting (2013)

maple3142
468pts189
github.com 5y ago

Single-file public-domain/open source libraries with minimal dependencies

maple3142
1pts0
momentjs.com 5y ago

We now consider Moment.js to be a legacy project in maintenance mode

maple3142
1129pts257
github.com 5y ago

Show HN: Heroku proxy local – Expose your local running server using Heroku

maple3142
2pts0
medium.com 5y ago

So you want to write a package manager (2016)

maple3142
1pts0
catern.com 5y ago

Docker Considered Harmful (2016)

maple3142
43pts49
blog.ezyang.com 5y ago

The fundamental problem of programming language package management (2014)

maple3142
1pts0
youtu.be 5y ago

Minecraft's Pack.png Found

maple3142
5pts1
testing.googleblog.com 5y ago

Code Health: Make Interfaces Hard to Misuse (2018)

maple3142
3pts0
www.reddit.com 5y ago

How to delete all your files

maple3142
121pts64
blog.bloomca.me 5y ago

Node.js Fundamentals: Web Server Without Dependencies (2018)

maple3142
1pts0
docs.google.com 5y ago

Container Linux on the Desktop (2017)

maple3142
2pts0
www.reddit.com 5y ago

HBO Max drops Linux support in all browsers?

maple3142
71pts110
www.tedinski.com 6y ago

How did we end up with containers? (2018)

maple3142
1pts0
0ver.org 6y ago

ZeroVer: 0-Based Versioning

maple3142
3pts0

Is this a correct understanding of UB in C? A program P has a set of inputs A that do not trigger UB, and a complementary set of inputs B that do trigger UB. A correct compiler compiles P into an executable P'. For all inputs in A, P' should behave the same as P. However, for any input in B, the is absolutely no requirements on the behavior of P'.

I think the problem is simply that css is too restricted that you can style a fixed piece of html in any way you want. In practice, achieving some desired layout require changing the html structure. The missing layer would be something that can change the structure of html like js or xslt. In modern frontend development you already have data defined in some json, and html + css combined together is the presentation layer that can't really be separated.

I don't think it is generally possible to escape from a docker container in default configuration (e.g. `docker run --rm -it alpine:3 sh`) if you have a reasonably update-to-date kernel from your distro. AFAIK a lot of kernel lpe use features like unprivileged user ns and io_uring which is not available in container by default, and truly unprivileged kernel lpe seems to be sufficient rare.

XSLT RIP 8 months ago

To be honest, there are two ways to solve the problem of xkcd 2347, either putting efforts into the very small library or just stop depending on it. Both solutions are fine to me and Google apparent just choose the latter one here.

I think many people are just not really good at dealing with "imperfect" tools. Different tools can have different success probability, let's call that probability p here. People typically use tool that have p=100%, or at least very close to it. But LLM is a tool that is far from that, so making use of it takes different approach.

Imagine there is an probabilistic oracle that can answer any question with a yes/no with success probability p. If p=100% or p=0% then it is apparently very useful. If p=50% then it is absolutely worthless. In other cases, such oracle can be utilized in different way to get the answer we want, and it is still a useful thing.

I really wonder how can use escape a container given a root shell created by `docker run --rm -it alpine:3 sh` without using a 0day? Using latest Docker and a reasonably up-to-date Linux kernel of course.

With the command above it is still possible to attack network targets, but let's just ignore it here. I just wonder how is it possible to obtain code execution outside the namespace without using kernel bugs.

Couldn't screen readers apply unicode normalization based some heuristics, like seeing the continuous presence of those special bold/italic characters? To improve accuracy, it can even check if the normalized text resembles to some English words or phrases or not.

From my experience, it is obviously not all the packages in Kali Repo will be in Ubuntu (or other regular distro) Repl. Lots of specific pentesting tool can be installed with just `apt install ...` in Kali, which make it a lot more convenient when you need to do pentesting.

I don't understand how can it really prevents exporting passkeys if it can be implemented by open source implementations like keepass. For example, if keepass do follow the guideline of FIDO Alliance to not implement exporting, but it would still possible to make a fork of keepass that force it to dump the credentials somewhere.

I think it is probably because a lot of things are deemed as acceptable. For example, the stream filter chain one is only exploitable if the input to some php IO functions like file_get_contents are attacker-controlled, and those things are already treated as LFR vulnerabilities in application, not the language runtime. Also some of the them (e.g. stream filter chain) are fun and useful enough (turning LFI into RCE), so I bet there definitely some people would rather those thing is not fixed. Given that a properly-secured application wouldn't be affected.

I think this is what @jitl means:

  node -e "process.stdout.write('@'.repeat(128 * 1024)); process.stdout.write('',()=>process.exit(0)); " | wc -c
It writes an empty string and use its callback to detect if it has been flushed, which means previous writes are also flushed.

Not sure if this is a bit off topic or not, but I recently encountered a problem where my program are continuously calling write to a socket in a loop that loops N times, with each of them sending about a few hundred bytes of data representing an application-level message. The loop can be understanded as some "batched messages" to server. After that, the program will try to receive data from server and do some processing.

The problem is that if N is above certain limit (e.g. 4), the server will resulting in some error saying that the data is truncated somehow. I want to make N larger because the round-trip latency is already high enough, so being blocked by this is pretty annoying. Eventually, I found an answer on stackoverflow saying that setting TCP_NODELAY can fix this, and it actually magically enable be to increase N to a larger number like 64 or 128 without causing issues. Still not sure why TCP_NODELAY can fix this issue and why this problem happens in the first place.

The example given by parent does not need eval to trigger though. Just create a function and replace its code object then call it, it will easily segfault.