Others have said good things. Since you also mentioned programming drivers, I recommend you to try writing a Linux kernel module at some point. This is going deeper in software, rather than embedded or bare metal. Kernel space programming is different because you literally can't use the functionalities of your OS, but you still have a lot of other things supporting you and get access to the inner workings of the OS. One idea would be for example, writing a module that lets you execute commands as root without having any privileges.
Another thing I want to mention is that Rust may help you learn low level code. Low level can also mean networking or command line software, and regardless, rust is in my opinion more ergonomic than C and C++, offers many advanced features, and will help you understand memory safety better.
That sort of depends on the situation. Responsible disclosure is for if there is some relevant security hole that is an actual risk to businesses and people, while this here is just "haha look LLMs can now better pretend to write good text if you tell it to". That's not really responsible disclosurable. It's not even specific to one singular product.
This is sadly not easily generalizable, since a lot of people still use legacy operating systems with filesystems like NTFS, which as far as I know is not COW.
It's because of the old notion of "be generous in what you accept and strict in what you send". I think the error is something about adding more parent directories so that part of your zip file will be extracted above the selected directory. Not all implementations of zip support this "feature".
There are also all kinds of stupid ancient features in tar and zip from a time when hard drives were measured in megabytes or less. The latest episode of the open source security podcast talks about it.
Others have said good things. Since you also mentioned programming drivers, I recommend you to try writing a Linux kernel module at some point. This is going deeper in software, rather than embedded or bare metal. Kernel space programming is different because you literally can't use the functionalities of your OS, but you still have a lot of other things supporting you and get access to the inner workings of the OS. One idea would be for example, writing a module that lets you execute commands as root without having any privileges.
Another thing I want to mention is that Rust may help you learn low level code. Low level can also mean networking or command line software, and regardless, rust is in my opinion more ergonomic than C and C++, offers many advanced features, and will help you understand memory safety better.