I am writing a paper on the implementation of QKD in the future. I want to know if there are any viable attacks on the BB84 protocol or QKD in general? I know of the Photon Number Splitting attack or spectroscopy in the case of diode manufacturing but I have heard that there are already solutions for those. Are there any other attacks that I have missed out?
The Attack you mentioned (PNS) is a "hardware attack" it depends on how you physically distribute the qubits.
The only "protocol attack" (known for the BB84) is the "intercept & resend" that can be applied on every hardware you use and can be performed very easily(but Eve is easy to detect if the key is, at least, 72 bit long).
Another attack that can be performed is the man-in-the-middle, but this is not related to the protocol but to the total absence of authentication in the BB84.
This answer is focused on the BB84 protocol because of every protocol have different points of strength and weakness so "QKD in general" is a bit vague... i hope this can help you.