The following example is well known to exhibit undefined behaviour:
T const x = T();
T& r = any_suitable_conversion_to_Tref(x); // fine
r = T(); // UB
This is confirmed for const_cast by cppreference:
const_cast makes it possible to form a reference or pointer to non-const type that is actually referring to a const object or a reference or pointer to non-volatile type that is actually referring to a volatile object. Modifying a const object through a non-const access path and referring to a volatile object through a non-volatile glvalue results in undefined behavior.
However, it says nothing about e.g. c-style conversions and it doesn't quote the standard (cppreference generally never does).
Where exactly does the C++ standard forbid this?