There isn't a way to do this in pure CSS with the structure you have, as a general rule CSS avoids any selectors that 'travel up' the DOM node tree to avoid complexity. However if you swap the order like so:
<div class="product">
<div class="productdescription"></div>
<div class="image">
<div class="mainimage"></div>
<div class="secondimage"></div>
</div>
</div>
Then you should be able to do the following using the Adjacent Sibling selector
.productdescription:hover + .image .secondimage{
display:block;
}
.productdescription:hover + .image .secondimage{
display:block;
color:red;
}
<div class="product">
<div class="productdescription">Product Description</div>
<div class="image">
<div class="mainimage">Main Image</div>
<div class="secondimage">Second Image</div>
</div>
</div>
Alternatively, if you need to keep the structure, then a bit of JavaScript/jQuery is required.
$(".productdescription").hover(function(){
$(this).parent().find(".image .secondimage").toggleClass("hoverActive")
});
.secondimage.hoverActive{
display:block;
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="product">
<div class="image">
<div class="mainimage">Main Image</div>
<div class="secondimage">Second Image</div>
</div>
<div class="productdescription">Product Description</div>
</div>