You can find references in audio forums to the nonlinear behavior of LDRs. And because nonlinear behavior of electronic components in audio applications are considered synonymous with distortion and generally considered "bad", LDRs are often considered a poor choice for audio applications. There's truth in there somewhere but it's not the whole story.
LDRs do indeed exhibit the nonlinear behavior typical of the quick and dirty graph below. What the graph shows is as the control current is reduced the relationship between current change and resistance begins to change radically. By the time the resistance is in the range of a few thousand ohms, this curve goes almost vertical, emphasis on "almost".
However, within the range of 100 ohms to say 100k ohms, this nonlinear behavior can be measured reasonably well with a simple circuit over this control range. The results can be stored in computer memory. That stored data can then be used to arrive at a lookup table of specific targeted resistance levels that correspond to specific levels of control current. To reproduce a given level of resistance, you need only apply the corresponding control current stored in the lookup table.
With 2 LDRs in a series/shunt configuration you then apply basic physics/math to arrive at the governing equation for simple attenuation: dB = 20 x log (Rshunt/(Rseries + Rshunt)). It's a relative straightforward matter conceptually to make up an attenuation table of Rseries & Rshunt values that correspond to equal steps of dB over a given attenuation range at a given impedance level. That is what goes on inside of a Tortuga Audio preamp controller using our hardware design together with approximately 50,000 lines of embedded computer code.
Overall point being, so what if LDRs exhibit inherent nonlinear behavior. Each attenuation point of Rseries and Rshunt are static values. Nothing is moving. There's no dynamic behavior here. Apply a given constant control current to the LDR - get a relatively steady and predictable resistance level.
In the event one or more LDRs drift in their current vs. resistance behavior over time, just test the LDRs again in-situ, store the new results, and Bob's your uncle.
I refer to this this re-testing as calibration or autocalibration and that proprietary process is built into our preamp controller.