Your issue is the post_parent
parameter, if this is set to 0 or a falsey value like null your query will return all top level posts.
So you just have to make sure $rental->post->ID has a value, or use a different approach like the get_the_ID()
function.
Can’t really tell you more than that as you have not included the part where you set $rental
$image_query = new WP_Query(
array(
'post_type' => 'attachment',
'post_status' => 'inherit',
'posts_per_page' => -1,
'post_parent' => get_the_ID(), // your issue here lays
)
);
And check out the docs for more details:
https://developer.wordpress.org/reference/classes/wp_query/#post-page-parameters