Earlier quoted context omitted.
If you subscribe to rustlang-security-announcements@googlegroups.com , you'll get emails. No JS required there. (With Javascript disabled, that page still renders, so I'm not sure why it doesn't show for you.)
It might depend on how the Javascript is being blocked. I use uBlock Origin advanced mode to selectively block Javascript (I imagine uMatrix is similar), and always have to whitelist discourse's CDN. The difference is probably that selective blockers like uBlock/uMatrix don't show elements, while globaly disabling Javascript does, and discourse might be relying on the noscript element (on mobile right now, so I can't…
Security advisory for crates.io
11–17 of 17 posts
Re: Security advisory for crates.io
#12the response time of the rust team was extremely quick, great job! 2017-09-13 @ 19:19 - Justin sends mail to security@rust-lang.org about this 2017-09-13 @ 19:28 - response sent to Justin acknowledging the vulnerability 2017-09-13 @ 21:14 - a patch to crates.io was finished, all current tarballs verified not-malicious
Re: Security advisory for crates.io
#13As always: there are no silver bullets. Static typing, nor Rust, can save you from all bugs. If you follow the link to the security announcement list, you can see the one other advisory we've had since 1.0 as well.
Rust gives us memory safety. But I wonder if somebody is working on a language which syntactically enforces safe filesystem access, and relegates anything resembling the POSIX API to unsafe{}?..
Re: Security advisory for crates.io
#14Earlier quoted context omitted.
Rust gives us memory safety. But I wonder if somebody is working on a language which syntactically enforces safe filesystem access, and relegates anything resembling the POSIX API to unsafe{}?..
'Safe' filesystem access? Honest question, but what would that look like? How is my software going to know that inserting 'no' into my mail file or overwriting a file or creating a new one was a 'bad' operation? Aside from adopting an immutable content-addressable storage system (something like Camlistore) I'm not sure how filesystem access could ever approach 'safe.' But, I haven't given it a great deal of thought o…
Re: Security advisory for crates.io
#15Earlier quoted context omitted.
Rust gives us memory safety. But I wonder if somebody is working on a language which syntactically enforces safe filesystem access, and relegates anything resembling the POSIX API to unsafe{}?..
'Safe' filesystem access? Honest question, but what would that look like? How is my software going to know that inserting 'no' into my mail file or overwriting a file or creating a new one was a 'bad' operation? Aside from adopting an immutable content-addressable storage system (something like Camlistore) I'm not sure how filesystem access could ever approach 'safe.' But, I haven't given it a great deal of thought o…
Safety is a spectrum. Consider a file system API that didn't let you obtain access to a parent directory, and didn't let you ambiently designate any path you like via an unchecked string and turn said string into a real handle to whatever lies at that path. Your program starts with a handle to what it's allowed to reference.
Any subroutine you passed a directory handle then couldn't obtain anything outside of that path (effectively a jail), and any subroutine that wasn't passed any handles can't read or modify the file system at all.
Re: Security advisory for crates.io
#16As always: there are no silver bullets. Static typing, nor Rust, can save you from all bugs. If you follow the link to the security announcement list, you can see the one other advisory we've had since 1.0 as well.
Rust gives us memory safety. But I wonder if somebody is working on a language which syntactically enforces safe filesystem access, and relegates anything resembling the POSIX API to unsafe{}?..
Re: Security advisory for crates.io
#17Earlier quoted context omitted.
'Safe' filesystem access? Honest question, but what would that look like? How is my software going to know that inserting 'no' into my mail file or overwriting a file or creating a new one was a 'bad' operation? Aside from adopting an immutable content-addressable storage system (something like Camlistore) I'm not sure how filesystem access could ever approach 'safe.' But, I haven't given it a great deal of thought o…
For example, the hypothetical language could require you to declare that a block of code is allowed to write only within a certain filesystem path (or list of paths). Attempts to escape from the path prefix - e.g. using /../ - would be caught by the compiler for static paths; and non-static strings representing paths would be required by the language's type system to be passed through a specific validator before they…
Unix chroot provides precisely the behavior desired here; unfortunately it requires root privileges.
Capsicum introduced the O_BENEATH flag to the openat(2) system call. openat(somedirfd, path, O_BENEATH) will fail if the path references a file above somedirfd. Unfortunately I don't think it has yet made it into Linux or FreeBSD, no doubt because the semantics are trickier than you'd think (there are very good reasons why chroot is limited to root, so you can't simply reuse the chroot infrastructure). See https://lwn.net/Articles/619146/ and https://reviews.freebsd.org/D2808 and http://capsicum-linux.org/